2012-05-26 5 views
1

Oracle 10g를 사용하고 있습니다. 지난 2 년간 수정 (삽입 또는 업데이트)되지 않은 특정 테이블의 레코드 양을 찾고 싶습니다.오랫동안 수정되지 않은 테이블 레코드 수 찾기

그러나 표에는 날짜 열이 없습니다. 데이터베이스 옵션에서 찾아야합니다. 내가 이것을 발견 할 수있는 방법이 있을까?

+6

'datetime' 또는'date' 또는'timestamp' 칼럼이 없다면 불가능합니다. 10g에는 'ORA_ROWSCAN' 기능이 있지만 2 년 된 데이터는 있지만 그렇게 생각하지 마십시오. – Rahul

+0

감사 정보를 확인하는 옵션 만있는 것 같습니다. 플래시백은 2 년 된 데이터 (옵션으로 구성되지 않은 경우)에는 사용할 수 없으며 [ORA_ROWSCN] (http://psoug.org/reference/pseudocols.html)에는 마지막 업데이트 만 표시됩니다. – Eggi

답변

0

개별 행에 대해서는이 작업을 수행 할 수 없지만 데이터베이스 블록에 대해서는 수행 할 수 있습니다. 개별 데이터베이스 블록을 덤프하고 각 블록의 마지막 변경 사항에 대한 scn을 결정한 다음 scn_to_timestamp 함수를 사용하여 블록에 마지막으로 변경된 시간을 표시합니다.

이 데이터 블록의 행이 수정되지 않은 경우 정확한 정보를 얻을 수 있습니다. 그러나 한 행이 변경된 경우이 방법을 사용하여 해당 블록의 다른 행이 지난 2 년 동안 변경되지 않았는지 확인할 수 없습니다.

+0

[SCN_TO_TIMESTAMP] (http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions161.htm#BABEHBCB)의 문제가 계속 발생합니다. "SCN과 타임 스탬프 간의 연결 SCN은 제한된 기간 동안 데이터베이스에 의해 생성됩니다. " –

관련 문제