2014년 8월 24일 일요일

[플래쉬백 버전 쿼리,오라클자바커뮤니티 오라클강좌]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) [출처] 오라클자바커뮤니티 - http://www.oraclejavacommunity.co.kr/bbs/board.php?bo_table=LecOracle&wr_id=205 오프라인진행강좌(개인환급80%) 목록 [평일주간]100%환급6건,안드로이드,자바,C#,스프링3.2,SQL,힌트/튜닝 [주말주간]C#, ASP.NET마스터 [평일,기업100%환급]SQL기초에서 Schema Object까지 [평일야간]HTML5, CSS3,Ajax, jQuery마스터과정 [평일주간,평일야간,주말]Spring,MyBatis,Hibernate개발자과정 [평일주간,평일야간,주말]안드로이드개발자과정 [평일야간,주말주간]JAVA,Network&WEB&Framework 기업100%환급/오라클/자바/스프링/안드로이드/닷넷C#/jQUERY개발자과정(개인80%환급) [평일야간,주말]자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지 웹퍼블리싱 마스터(HTML5,CSS3,jQUERY,AJAX,JavaScript) [채용예정교육]오라클자바개발잘하는신입뽑기2개월과정,교육전취업확정 [평일,기업100%환급]자바기초에서 JDBC, Servlet/JSP까지 [평일야간]닷넷(C#,Network,ADO.NET,ASP.NET)마스터 [기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍(평일주간(단기)) [평일야간,주말,주말야간]SQL기초에서실무까지(SQL기초,PLSQL,힌트,튜닝)

[플래쉬백 버전 쿼리,오라클자바커뮤니티 오라클강좌]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)  



댓글 없음:

댓글 쓰기