閃回版本查詢技術:

skyin_1603發表於2016-09-30
有時候,我們隊個別頻發變動的資料不斷地修改,而修改後,一般情況系,只能看到修改最後的一個結果,
為了能夠清楚地看到整個修改過程中的每次修改的結果,我們可以透過閃回版本查詢技術。

我們登入Scott使用者下的emp表,對錶中一條員工號為empno=7369的員工工資進行多次修改,如下:

conn scott/tiger0520

最初的資料:

SQL> select ename,job,sal from emp where empno=7369;

ENAME      JOB              SAL

---------- --------- ----------

SMITH      CLERK            800

第一次

SQL> update emp set sal=sal+200 where empno=7369;

1 row updated.

SQL> commit;

Commit complete.

第二次

SQL> update emp set sal=sal+200 where empno=7369;

1 row updated.

SQL> commit;

Commit complete.

第三次

SQL> update emp set sal=sal+200 where empno=7369;

1 row updated.

SQL> commit;

Commit complete.

最終的資料:

SQL> select ename,job,sal from emp where empno=7369;

ENAME      JOB              SAL

---------- --------- ----------

SMITH      CLERK           1400

此時,我們可以透過閃回版本查詢檢視,執行如下查詢語句:

SQL> select to_char(versions_starttime,'yyyy-mm-dd hh24:mi:ss')

  2   as starttime,versions_xid,ename,job,sal

  3  from emp versions between timestamp

  4  sysdate-10/1440 and sysdate where empno=7369; 


STARTTIME           VERSIONS_XID     ENAME      JOB              SAL

------------------- ---------------- ---------- --------- ----------

2016-09-29 23:30:07 0D001D009B000000 SMITH      CLERK           1400

2016-09-29 23:29:01 14001200A2000000 SMITH      CLERK           1200

2016-09-29 23:26:31 0F000100A3000000 SMITH      CLERK           1000

                                     SMITH      CLERK            800


部分欄位解釋:

VERSIONS_STARTSCN

VERSIONS_STARTTIME

  該記錄操作時的 scn 或時間,如果為空,表示該行記錄是在查詢範圍外創

  建的。

VERSIONS_ENDSCN

VERSIONS_ENDTIME

  該記錄失效時的 scn 或時間,如果為空,說明記錄當前時間在當前表記憶體

  在,或者已經被刪除了,可以配合著 VERSIONS_OPERATION 列來看,如

   VERSIONS_OPERATION 列值為 D,說明該列已被刪除,如果該列為

  空,則說明記錄在這段時間無操作。

VERSIONS_OPERATION

   對該行執行的操作:I 表示 insert,D 表示 delete,U 表示 update。

  提示:對於索引鍵的 update 操作,版本查詢可能會將其識別成兩個操

  作:DELETE 和 INSERT。

VERSIONS_XID  

  該操作的事務 ID


透過以上的操作,我們一清二楚地看到該條資料的變動過程。







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

相關文章