2017-10-18 14 views
2
select ora_rowscn from table_name; 

ORA_ROWSCN은 행에 대한 가장 최근 변경 사항의 보수 상한 시스템 변경 번호 (SCN)를 반환합니다. 이 의사 열은 행이 마지막으로 갱신 된시기를 판별하는 데 유용합니다.Oracle 데이터베이스에서 마지막으로 수정 된 테이블의 목록을 얻으려면 어떻게합니까?

여기에서 타임 스탬프를 어떻게받을 수 있습니까? 또한 특정 스키마에서 마지막으로 수정 된 테이블을 모두 가져올 수있는 쿼리가 있습니까?

답변

1

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 
+0

FLASHBACK_TRANSACTION_QUERY을 (를) 실행하려면 권한이 필요합니다. – Moudiz

0

당신이 요구하는 것에 대해 SCN에 관여 할 필요는 없습니다. 왜 그냥 :

begin dbms_stats.flush_database_monitoring_info; end; 

select * from dba_tab_modifications 
where timestamp >= sysdate - 7 
order by timestamp desc; 

것은 당신이 (? 어리석게도) (기본값은 높다 TYPICAL입니다)에만 BASIC 통계 수준으로 실행하지 않는 한,이는 11g 데이터베이스 이상에서 잘 작동합니다.

관련 문제