[플래쉬백 버전 쿼리,오라클자바커뮤니티 오라클강좌]Flashback New Feature - Flashback Version Query , 오라클 플래시백 특징
FlashBack Version Query라고 하는 것은 VERSION BETWEEN 구를 이용하여 주어진 기간내의 데이터의 변화에 대한 관찰이 가능 합니다.
아래의 예를 통해 이해 하도록 하겠습니다.
CREATE TABLE flashback_test (
id NUMBER(10),
description VARCHAR2(50)
);
INSERT INTO flashback_test (id, description) VALUES (1, 'ONE');
COMMIT;
SELECT current_scn, TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS') FROM v$database;
CURRENT_SCN TO_CHAR(SYSTIMESTAM
----------- -------------------
725202 2004-03-29 14:59:08
UPDATE flashback_test SET description = 'TWO' WHERE id = 1;
COMMIT;
UPDATE flashback_test SET description = 'THREE' WHERE id = 1;
COMMIT;
SELECT current_scn, TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS') FROM v$database;
CURRENT_SCN TO_CHAR(SYSTIMESTAM
----------- -------------------
725219 2004-03-29 14:59:36
====================================================================
COLUMN versions_startscn FORMAT 99999999999999999
COLUMN versions_starttime FORMAT A24
COLUMN versions_endscn FORMAT 99999999999999999
COLUMN versions_endtime FORMAT A24
COLUMN versions_xid FORMAT A16
COLUMN versions_operation FORMAT A1
COLUMN description FORMAT A11
SET LINESIZE 200
SELECT versions_startscn, versions_starttime,
versions_endscn, versions_endtime,
versions_xid, versions_operation,
description
FROM flashback_test
VERSIONS BETWEEN TIMESTAMP TO_TIMESTAMP('2004-03-29 14:59:08', 'YYYY-MM-DD HH24:MI:SS')
AND TO_TIMESTAMP('2004-03-29 14:59:36', 'YYYY-MM-DD HH24:MI:SS')
WHERE id = 1;
VERSIONS_STARTSCN VERSIONS_STARTTIME VERSIONS_ENDSCN VERSIONS_ENDTIME VERSIONS_XID V DESCRIPTION
------------------ ------------------------ ------------------ ------------------------ ---------------- - -----------
725212 29-MAR-04 02.59.16 PM 02001C0043030000 U THREE
725209 29-MAR-04 02.59.16 PM 725212 29-MAR-04 02.59.16 PM 0600030021000000 U TWO
725209 29-MAR-04 02.59.16 PM ONE
====================================================================
SELECT versions_startscn, versions_starttime,
versions_endscn, versions_endtime,
versions_xid, versions_operation,
description
FROM flashback_test
VERSIONS BETWEEN SCN 725202 AND 725219
WHERE id = 1;
VERSIONS_STARTSCN VERSIONS_STARTTIME VERSIONS_ENDSCN VERSIONS_ENDTIME VERSIONS_XID V DESCRIPTION
------------------ ------------------------ ------------------ ------------------------ ---------------- - -----------
725212 29-MAR-04 02.59.16 PM 02001C0043030000 U THREE
725209 29-MAR-04 02.59.16 PM 725212 29-MAR-04 02.59.16 PM 0600030021000000 U TWO
725209 29-MAR-04 02.59.16 PM ONE
VERSIONS_STARTSCN or VERSIONS_STARTTIME - 헤당 로우가 그 값을 가진 시작 SCN 번호 또는 일시, NULL이라는 의미는 주어진 조건의 시간 이전에 이미 값이 만들어 졌다는 의미
VERSIONS_ENDSCN or VERSIONS_ENDTIME - 해당 로우가 마지막으로 그값을 가진 SCN 번호 또는 일시, NULL이라는 의미는 주어진 기간에서는 그 값이 변하지 않고 있었다는 의미
VERSIONS_XID -현재 상태의 로우에 대한 Transaction ID
VERSIONS_OPERATION - Operation performed by the transaction ((I)nsert, (U)pdate or (D)elete)
댓글 없음:
댓글 쓰기