Oracle中的时态表

Rog*_*ger 2 oracle temporal-tables

Tom Kyte 在这里描述时态表:

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

Oracle中是否存在此类表?我找不到它们的文档.我该如何创建并使用它?他说他们存在于数据库中,尽管他并没有说他们在Oracle中也没有,也没有说过任何其他产品.这是一个未实现的概念性事物吗?

Dmi*_*rov 5

好吧,我相信你的意思是获得数据状态,因为它比现在早一段时间.在这种情况下,Oracle建议使用FLASHBACK QUERIES:

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                                                           
Run Code Online (Sandbox Code Playgroud)

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

  • 需要注意的是,闪回查询是否成功直接取决于undo_retention初始化参数的值,默认为900秒,并且undo表空间有足够的空间。如果没有增加得足够多,就不可能看得足够远。 (2认同)