PLSQL_闪回操作3_Fashback Transaction Query

2014-12-09 Created By BaoXinjian

一、摘要


Flashback Transaction Query也是使用UNDO信息来实现。

利用这个功能可以查看某个事务执行的所有变化,它需要访问flashback_transaction_query 视图,这个视图的XID列代表事务ID,利用这个ID可以区分特定事务发生的所有数据变化。

 

二、案例


Step1. 创建测试数据

SQL> insert into B values(3);
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from B;
        ID
       ----------
         1
         2
         3

 
Step2. 查看视图,每个事务都对应相同的XID

SQL>Select xid,operation,commit_scn,undo_sql 
from flashback_transaction_query
where xid in (Select versions_xid from B versions between scn minvalue and maxvalue);

或者

SQL>select xid,commit_scn,commit_timestamp,operation,undo_sql
      from flashback_transaction_query q 
where q.xid in(select versions_xid from B versions between scn 413946 and 413959); XID OPERATION COMMIT_SCN UNDO_SQL ---------------- -------------------------------- ---------- 03001C006A020000 DELETE 1100723 insert into "SYS"."B"("ID") values ('4'); 03001C006A020000 DELETE 1100723 insert into "SYS"."B"("ID") values ('3'); 03001C006A020000 DELETE 1100723 insert into "SYS"."B"("ID") values ('2')

 

 

Thanks and Regards

posted on 2014-12-04 09:17  东方瀚海  阅读(285)  评论(0编辑  收藏  举报