2011-07-04 2 views
7

어제 내 친구 인 -BI Specialist가 오라클 문제에 대해 설명했습니다.
엄청난 양의 데이터가 포함되어 있지만 각 행에 대해 Created datetime을 저장하는 각 테이블에 대한 열을 만들지는 않습니다.
그래서이 경우 어떻게 각 행에 대해 Created datetime (timestamp)을 얻을 수 있습니까?Oracle에서 테이블 행에 대해 생성 된 날짜 - 시간이란 무엇입니까?

+1

는 데이터를 기존의 거대한 양의 기존 데이터베이스에 뜻 :

첫째는 SCN을 발견하고 그것을 기반으로 타임 스탬프를 얻을 수 SCN_TO_TIMESTAMP를 사용할 수 있습니까? 어떤 종류의 감사도 가능합니까? – Randy

+0

나는 그렇게 생각하지 않는다. –

답변

17

모든 행에는 자체 시스템 변경 번호 (SCN)가 있습니다. 이것은 데이터베이스에서 정확하게 순간을 식별합니다.

SELECT 
    SCN_TO_TIMESTAMP(ora_rowscn) 
FROM 
    MyTable 
+3

'SCN_TO_TIMESTAMP()'가 이전 데이터에 대해 사용 가능하지 않을 수도 있지만 ('ORA_ROWSCN'은 항상 사용 가능함)주의 할 가치가있다. –

+0

@Alvaro : 그렇습니다. – CristiC

+3

또한 기본적으로 'ora_rowscn'은 블록 수준에서 기록됩니다 (NOROWDEPENDENCIES는 기본 CREATE TABLE 옵션입니다). 예를 들어 http://asktom.oracle.com/pls/apex/f?p=100:11:0::NO::P11_QUESTION_ID:517105100346104196 –

관련 문제