flashback總結五之Flashback_Query_Version(下)_補充

zhangshengdong發表於2011-11-28

由於之前是一條語句,一條commit,所以scn都會根據commit之後,都會相應的多個改變

而如果多條語句,例如:

insert into scott.emp values(7970,'dong','CLERK',7902,to_date('2011-09-09','YYYY-mm-dd'),'800','300',20);

update scott.emp set sal =1000 where empno =7970;

update scott.emp set sal =1000 where empno =7968;

之後再,commit

那麼你獲得的scn就是,一個改變。


可以根據
SQL> Select versions_xid,versions_startscn,versions_endscn,
     DECODE(versions_operation,'I','Insert','U','Update','D','Delete', 'Original') "Operation", empno from scott.emp
     versions between scn minvalue and maxvalue;

VERSIONS_XID     VERSIONS_STARTSCN VERSIONS_ENDSCN Operatio      EMPNO
---------------- ----------------- --------------- -------- ----------
                                           3468264 Original       7964
09000600B1040000           3469014                 Update         7968
01001300D2030000           3468264         3469014 Insert         7968
01001300D2030000           3468264                 Delete         7968
                                           3468264 Original       7968
09000600B1040000           3469014                 Insert         7970
01001300D2030000           3468264                 Delete         7970
                                           3468264 Original       7970

已選擇52行。

以上的結論分析可以看出,在做一次insert和兩次update操作之前的scn號是3468264,而一次insert和兩次update之後
的scn號是3469014

所以,scn號對應的是以你的commit為主。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26446098/viewspace-712218/,如需轉載,請註明出處,否則將追究法律責任。

相關文章