如何查询ORACLE数据库最近有插入过什么数据?

止水i 2019-07-03 11:19:53
如题哦
情况背景:系统用的是网页版的系统跟踪不出来执行过哪些SQL语句所以我就想着,oracle应该可以查询的到吧例如今天都有哪些表被插入过数据然后插入了些什么数据。
问题1:如何查询今日数据库有哪些表被插入过?
问题2:接问题1分别是哪些数据字段内容
...全文
1692 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
止水i 2020-03-17
  • 打赏
  • 举报
回复
看来只能挖日志了吗?,期待有更好的办法
minsic78 2019-07-10
  • 打赏
  • 举报
回复
引用 3 楼 止水i 的回复:
[quote=引用 1 楼 minsic78 的回复:] 如果没有实现审计,无论是数据内的还是数据库外的,那么没有精确的方法可以获取最近插入的数据。如果时间短系统不忙的话,可以使用闪回查询来获取新插入的数据: 1、使用闪回查询获取某个之前的时间点的数据,比如: select * from tablename as of timestamp trunc(sysdate); 当然运气不好,时间过去的太久,数据库又比较忙,这个查询就查不到今天之前时间点的数据了 2、将当前时间点的数据,与上面得到的非当前时间点的数据做个minus,就是新插入的数据 如果表的数据量比较大,那么你可能需要考虑是否要将第一步的结果存入临时表好方便第二布的比较。
select*from tablename 这个表名是需要我自己输入吗?[/quote] 是的,如果你想知道所有的,那么事后就只有挖日志一条路了。
止水i 2019-07-10
  • 打赏
  • 举报
回复
引用 1 楼 minsic78 的回复:
如果没有实现审计,无论是数据内的还是数据库外的,那么没有精确的方法可以获取最近插入的数据。如果时间短系统不忙的话,可以使用闪回查询来获取新插入的数据:
1、使用闪回查询获取某个之前的时间点的数据,比如:
select * from tablename as of timestamp trunc(sysdate);
当然运气不好,时间过去的太久,数据库又比较忙,这个查询就查不到今天之前时间点的数据了
2、将当前时间点的数据,与上面得到的非当前时间点的数据做个minus,就是新插入的数据
如果表的数据量比较大,那么你可能需要考虑是否要将第一步的结果存入临时表好方便第二布的比较。


select*from tablename 这个表名是需要我自己输入吗?
hellsing 2019-07-07
  • 打赏
  • 举报
回复
楼上说的闪回可以
minsic78 2019-07-03
  • 打赏
  • 举报
回复
如果没有实现审计,无论是数据内的还是数据库外的,那么没有精确的方法可以获取最近插入的数据。如果时间短系统不忙的话,可以使用闪回查询来获取新插入的数据: 1、使用闪回查询获取某个之前的时间点的数据,比如: select * from tablename as of timestamp trunc(sysdate); 当然运气不好,时间过去的太久,数据库又比较忙,这个查询就查不到今天之前时间点的数据了 2、将当前时间点的数据,与上面得到的非当前时间点的数据做个minus,就是新插入的数据 如果表的数据量比较大,那么你可能需要考虑是否要将第一步的结果存入临时表好方便第二布的比较。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧