Oracle中的时态表

时间:2014-01-15 14:00:42

标签: oracle temporal-tables

Tom Kyte描述了时间表here

  

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

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

1 个答案:

答案 0 :(得分: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                                                           

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