select ora_rowscn from table_name;
ORA_ROWSCN
返回對該行的最近更改的保守上限系統更改數(SCN)。這個僞列對於確定上一次更新行的時間很有用。如何獲取Oracle數據庫中所有最後修改表的列表?
如何從這裏獲取時間戳?此外,是否有任何查詢我可以在特定的架構中獲取所有最後修改的表?
select ora_rowscn from table_name;
ORA_ROWSCN
返回對該行的最近更改的保守上限系統更改數(SCN)。這個僞列對於確定上一次更新行的時間很有用。如何獲取Oracle數據庫中所有最後修改表的列表?
如何從這裏獲取時間戳?此外,是否有任何查詢我可以在特定的架構中獲取所有最後修改的表?
SCN_TO_TIMESTAMP
將作爲參數的數字計算爲系統更改號(SCN),並返回與該SCN關聯的近似時間戳。
SELECT SCN_TO_TIMESTAMP(ORA_ROWSCN)
FROM employees
WHERE employee_id = 188;
如果您有10g或更高版本,您可以使用Oracle的閃回功能獲取此信息。你需要啓用閃回;
select table_name ,max(commit_timestamp)
from FLASHBACK_TRANSACTION_QUERY
where table_owner = 'YOUR_SCHEMA'
and operation in ('INSERT','UPDATE','DELETE','MERGE')
group by table_name
應該沒有必要參與SCNs的問題。爲什麼不乾脆:
begin dbms_stats.flush_database_monitoring_info; end;
select * from dba_tab_modifications
where timestamp >= sysdate - 7
order by timestamp desc;
除非你(?愚蠢),只有BASIC
統計級別運行(默認爲TYPICAL
,這是更高),這應該在任何11g數據庫或更高版本的做工精細。
請注意您需要priveleges才能運行FLASHBACK_TRANSACTION_QUERY – Moudiz