查詢某表最近5天內最後一次dml的時間

lusklusklusk發表於2018-04-26
select ORA_ROWSCN from tablename order by 1 desc--比如值為XX
--ORA_ROWSCN 預設是資料塊級別的,也就是一個資料塊內的所有記錄都是一個ORA_ROWSCN,資料塊內任意一條記錄被修改,這個資料庫塊內的所有記錄的ORA_ROWSCN 都會同時改變。

select scn,to_char(time_dp,'yyyy-mm-dd hh24:mi:ss')from sys.smon_scn_time where scn>XX order by 1
--sys.smon_scn_time只記錄了最近5天的記錄,所以該表最後一次的修改時間大於5天前,就查不到確切的時間點了。

以上兩條sql也可以使用下面的替代,當然如果SCN超過最近5天的SCN則不能使用SCN_TO_TIMESTAMP函式,否則會報錯--ORA-08181: 指定的編號不是有效的系統更改號
select max(ora_rowscn),to_char(scn_to_timestamp(max(ora_rowscn)),'yyyy-mm-dd hh24:mi:ss') from tablename;

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

相關文章