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

你可能感兴趣的:(transaction)