查詢一個表插入資料的時間,按BLOCK時間

路途中的人2012發表於2017-05-03

用sql語句檢視oracle表每條記錄的建立時間(ora_rowscn)

      有時要檢視錶中的那條記錄是什麼時候建立的,有的會去用logminer去檢視,有的會用閃回查詢,其實很簡單,不用那麼麻煩,oracle的建每張表時都會建一個隱含的欄位ora_rowscn,看到這個欄位的名字,有寫人會想到scn?對了,oracle在向表中插入記錄時會記錄插入記錄時當前資料庫的scn,那麼聰明的你很快就會想到,既然有每條記錄的scn,那麼透過scn不就能查到每條記錄的建立時間啦?全對!
      只要一句話,就可以輕鬆檢視錶記錄的生成時間,相信這個應該會有幫助的!
      舉個例子:
      select to_char(scn_to_timestamp(ORA_ROWSCN),'yyyy-mm-dd hh24:mi:ss') insert_time from scott.emp;
      結果將會看到emp表中每條記錄建立時的時間。

      預設情況下,每行記錄的ORA_ROWSCN是基於Block的,這樣是不準確的,除非在建表的時候執行開啟行級跟蹤(create table … rowdependencies),這樣就會是在行級記錄scn。
      所以要想檢視準確的記錄建立時間則在建表時要加rowdependencies選項!

 

 

感謝筆者 http://www.cnblogs.com/xuanyuanvista/archive/2009/08/25/ora_rowscn.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29067253/viewspace-2138320/,如需轉載,請註明出處,否則將追究法律責任。

相關文章