select ora_rowscn from table_name;
ORA_ROWSCN
返回最近更改行的保守上限系统更改号(SCN)。该伪列对于确定行上次更新的大致时间非常有用。
我该如何从这里获取时间戳?还有,是否有任何查询可以获取特定模式中所有最后修改的表?
select ora_rowscn from table_name;
ORA_ROWSCN
返回最近更改行的保守上限系统更改号(SCN)。该伪列对于确定行上次更新的大致时间非常有用。
我该如何从这里获取时间戳?还有,是否有任何查询可以获取特定模式中所有最后修改的表?
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
为什么不这样做:
begin dbms_stats.flush_database_monitoring_info; end;
select * from dba_tab_modifications
where timestamp >= sysdate - 7
order by timestamp desc;
除非你愚蠢地只运行基本统计水平(默认为典型,更高),否则在任何11g数据库或更高版本中都应该可以正常工作。