3

Tom Kyte在这里描述了时态表:

时态表是可以返回某个时间点存在的答案的表——您可以要求该表返回昨晚午夜存在的答案,而不是现在存在的答案

Oracle中是否存在这样的表?我找不到他们的文档。如何创建并使用它?他说它们存在于数据库中,尽管他没有说它们存在于 Oracle 或任何其他产品中。这是一个没有实现的概念吗?

4

1 回答 1

6

好吧,我相信您的意思是获取数据状态,因为它比现在早了一段时间。在这种情况下,Oracle 建议使用闪回查询:

SQL> select * from t where x in (1,2,3);

         X          Y                                                           
---------- ----------                                                           
         1          1                                                           
         2          2                                                           
         3          3                                                           

SQL> delete from t where x in (1,2,3);

SQL> commit;

SQL> select * from t where x in (1,2,3);

No rows selected

SQL> select * from t as of timestamp(systimestamp - interval '2' minute) where x in (1,2,3)
  2  /

         X          Y                                                           
---------- ----------                                                           
         1          1                                                           
         2          2                                                           
         3          3                                                           

Oracle 在那里描述了这个选项

http://docs.oracle.com/cd/B12037_01/appdev.101/b10795/adfns_fl.htm#1008580

从临时表开始 - 请参阅此参考:

http://docs.oracle.com/cd/B28359_01/server.111/b28310/tables003.htm#ADMIN01503

于 2014-01-15T14:24:37.873 回答