Versions between版本查詢
oracle 10g開始,提供了功能更加強大的閃回版本查詢,通過versions between能夠查看指定時間段內undo表空間中記錄的不同版本(注意,只包括被提交的記錄)。
在標準查詢後面附加versions between timestamp[/scn] t1 and t2即可。記錄在版本查詢中可能會是一對多的關係,比如某些記錄如果被修改過多次,並分別提交,那麼你在查詢的時候,如果修改的操作是在你指定的時間段(或scn),則記錄每次修改的結果都會被選擇出來,這比較有利於我們做數據的對比,比如看看數據究竟是怎麼變化的。
版本查詢過程中提供了多個僞列如下:
VERSIONS_STARTSCN --該記錄操作時的scn
VERSIONS_STARTTIME --該記錄操作時的時間
如果爲空,表示該行記錄是在查詢範圍外創建的。
VERSIONS_ENDSCN --該記錄失效時的SCN
VERSIONS_ENDTIME --該記錄失效時的時間
如果爲空,說明記錄當前時間在當前表內存在,或者已經被刪除了,可以配合着VERSIONS_OPERATION列來看,如果VERSIONS_OPERATION列值爲D,說明該列已被刪除,如果該列爲空,則說明記錄在這段時間無操作。
VERSIONS_OPERATION --對該行執行的操作:I表示insert,D表示delete,U表示update。
提示:對於索引鍵的update操作,版本查詢可能會將其識別成兩個操作:DELETE和INSERT。
VERSIONS_XID --該操作的事務ID