728x90
SCN_TO_TIMESTAMP
구문
SCN_TO_TIMESTAMP(number)
목적
SCN_TO_TIMESTAMP 함수는 시스템 변경 번호 (SCN)로 평가되는 숫자를 인수로 받아 해당 SCN과 관련된 근사한(approximate) 타임스탬프를 반환합니다. 반환된 값은 TIMESTAMP 데이터 유형입니다. 이 함수는 언제든 SCN과 연결된 타임스탬프를 알고자 할 때 유용합니다. 예를 들어 ORA_ROWSCN 의사 컬럼과 함께 사용하여 행에 대한 최근 변경과 타임스탬프를 연결하는 데 사용할 수 있습니다.
노트:
• 결과 값의 일반적인 정밀도는 3초입니다.
• SCN과 타임스탬프 간의 연결은 데이터베이스에서 일정 기간 동안 기억됩니다. 이 기간은 데이터베이스가 자동 Undo 관리 모드에서 실행 중인 경우 자동 조정된 undo 보존 기간의 최대 값이며, 데이터베이스의 모든 플래시백 아카이브의 보존 시간보다 작지 않습니다. 그러나 최소 120시간입니다. 연결이 만료되는 시간은 데이터베이스가 열려 있는 동안에만 경과합니다. SCN_TO_TIMESTAMP에 인수로 지정된 SCN이 너무 오래된 경우 오류가 반환됩니다.
참고:
ORA_ROWSCN 의사 컬럼(Pseudocolumn) 및 TIMESTAMP_TO_SCN
예제
다음 예제는 ORA_ROWSCN 의사열을 사용하여 행의 마지막 업데이트에 대한 시스템 변경 번호(SCN)를 결정하고, 그 SCN을 타임스탬프로 변환하기 위해 SCN_TO_TIMESTAMP 함수를 사용합니다:
SELECT SCN_TO_TIMESTAMP(ORA_ROWSCN) FROM employees
WHERE employee_id = 188;
Oracle Flashback Query에서 사용할 시스템 변경 번호(SCN)를 타임스탬프로 변환하는 쿼리를 다음과 같이 사용할 수 있습니다:
SELECT salary FROM employees WHERE employee_id = 188;
SALARY
----------
3800
UPDATE employees SET salary = salary*10 WHERE employee_id = 188;
COMMIT;
SELECT salary FROM employees WHERE employee_id = 188;
SALARY
----------
38000
SELECT SCN_TO_TIMESTAMP(ORA_ROWSCN) FROM employees
WHERE employee_id = 188;
SCN_TO_TIMESTAMP(ORA_ROWSCN)
---------------------------------------------------------------------------
28-AUG-03 01.58.01.000000000 PM
FLASHBACK TABLE employees TO TIMESTAMP
TO_TIMESTAMP('28-AUG-03 01.00.00.000000000 PM');
SELECT salary FROM employees WHERE employee_id = 188;
SALARY
----------
3800
출처: 오라클 레퍼런스
원문 링크: Oracle SCN_TO_TIMESTAMP 함수 문서
반응형
'코딩 > 오라클 함수' 카테고리의 다른 글
[오라클 레퍼런스 함수] SET - 중복 제거하여 중첩 테이블을 집합으로 변환 (0) | 2023.08.17 |
---|---|
[오라클 레퍼런스 함수] SESSIONTIMEZONE - 현재 세션의 시간대 반환 (0) | 2023.08.17 |
[오라클 레퍼런스 함수] RTRIM - 오른쪽 끝의 문자 제거 (0) | 2023.08.16 |
[오라클 레퍼런스 함수] RPAD - 오른쪽 패딩된 문자열 반환 (0) | 2023.08.16 |
[오라클 레퍼런스 함수] ROWIDTONCHAR - ROWID 값을 NVARCHAR2 데이터 유형으로 변환 (0) | 2023.08.16 |
댓글