如何获取 Oracle 数据库中所有最后修改的表的列表?

Aka*_*uri 5 oracle timestamp last-modified sql-timestamp

select ora_rowscn from table_name;
Run Code Online (Sandbox Code Playgroud)

ORA_ROWSCN返回该行最近更改的保守上限系统更改号 (SCN)。该伪列对于确定行的上次更新时间非常有用。

我如何从这里获取时间戳?另外,是否有任何查询可以获取特定模式中所有最后修改的表?

XIN*_*ING 2

SCN_TO_TIMESTAMP将计算结果为系统更改号 (SCN) 的数字作为参数,并返回与该 SCN 关联的近似时间戳。

SELECT SCN_TO_TIMESTAMP(ORA_ROWSCN) 
FROM employees
WHERE employee_id = 188;
Run Code Online (Sandbox Code Playgroud)

如果您有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
Run Code Online (Sandbox Code Playgroud)