Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle SQL表历史记录_Sql_Oracle_Timestamp - Fatal编程技术网

Oracle SQL表历史记录

Oracle SQL表历史记录,sql,oracle,timestamp,Sql,Oracle,Timestamp,这就是问题所在,我有一个Oracle表,一个普通表,有300行数据 我需要弄清楚这些数据在至少100天前是什么样子的,谁做了更改,时间戳也很好。 问题是,我确实有一个定时备份,但我相信有人更改了数据并删除了备份,所以我试图找出系统记录的这种变化 我在谷歌上搜索了这个,但对于我现在得到的结果,我没有得到我需要的 从dba_hist_sqltext中选择*它只提供当前会话的结果 选择SCN\u TO\u时间戳(ORA\u ROWSCN)-指定的编号不是有效的系统更改编号 Oracle SQL信息

这就是问题所在,我有一个Oracle表,一个普通表,有300行数据

我需要弄清楚这些数据在至少100天前是什么样子的,谁做了更改,时间戳也很好。 问题是,我确实有一个定时备份,但我相信有人更改了数据并删除了备份,所以我试图找出系统记录的这种变化

我在谷歌上搜索了这个,但对于我现在得到的结果,我没有得到我需要的

  • 从dba_hist_sqltext中选择*它只提供当前会话的结果
  • 选择SCN\u TO\u时间戳(ORA\u ROWSCN)-指定的编号不是有效的系统更改编号
Oracle SQL信息- Java(TM)平台1.7.0_51 Oracle IDE 4.0.0.13.80 版本控制支持4.0.0.13.80

你们还有别的想法吗? 提前感谢

您可以使用闪回:

这样,您就可以使用
asoftimestamp
子句进行查询,如下所示:

SELECT * FROM yourtable
  AS OF TIMESTAMP TO_TIMESTAMP('2004-04-04 09:30:00', 'YYYY-MM-DD HH:MI:SS');

但这必须启用,并且有一定的(可配置的)大小限制,因此不能保证您仍然可以查询100天前的记录。在一个繁忙的数据库中,历史记录可能只会追溯几分钟。

谢谢你,伙计,它告诉了我在寻找解决方案时应该考虑的方向!再次感谢您的快速回答!