PLSQL_闪回操作3_Fashback Transaction Query

简介: 2014-12-09 Created By BaoXinjian 一、摘要 Flashback Transaction Query也是使用UNDO信息来实现。 利用这个功能可以查看某个事务执行的所有变化,它需要访问flashback_transaction_query 视图,这个视图的XID列代表事务ID,利用这个ID可以区分特定事务发生的所有数据变化。

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

ERP技术讨论群: 288307890
技术交流,技术讨论,欢迎加入
Technology Blog Created By Oracle ERP - 鲍新建
相关文章
|
SQL 存储 数据库
|
Oracle 关系型数据库
【Flashback】使用视图快速获得Flashback Query闪回查询数据
本文给出使用视图协助我们快速构造闪回查询内容,通过视图可以方便的检索“历史上的数据”。 1.构造闪回查询视图需求描述 1)准备员工表和工资表 2)删除工资表中雇佣年限在1994年之前的记录 3)创建视图可以查询工资表删除之前的记录 2.准备环境 1)准备员工表和工资表 sec@ora10g> create table emp (id number,name varchar2(20), e_date date); Table created. sec@ora10g> create table salary (id number, salary number); Table create
134 0
|
数据库
EF6:在多语句事务内不允许使用 CREATE DATABASE 语句
一、问题 使用ef codefirst开发,无法创建数据库的问题,如下提示 Server Error in '/' Application. 在多语句事务内不允许使用 CREATE DATABASE 语句。
1572 0
|
SQL Perl
dbms_shared_pool.purge 清理某个SQL执行计划
dbms_shared_pool.purge 清理某个SQL执行计划 在日常管理中,经常有让sql重新解析的需求,比如说使用了bind peeking,第一次绑定特定值的时候执行计划走的特别糟,因为绑定变量导致之后的语句不作...
925 0
dba_segments与dba_rollback_segs查询到的rollback结果不一样(原创)
在做一个测试的时候发现从dba_segments与dba_rollback_segs中查看到的rollback segments结果不一致,如下:dba_segments中得到的结果:SQL> select owner,segment_name from dba_se...
1076 0
|
SQL 关系型数据库 Oracle
oracle v$session v$lock v$transaction v$process v$sql
Name                    Type         Nullable Default Comments   ----------------------- ------------ -------- ------- -------- ...
783 0
|
Oracle 关系型数据库 数据库
PLSQL_闪回操作1_Flashback Query
2014-07-02 Created By BaoXinjian 一、摘要 在PLSQL开发时,有时候会遇到对表中数据的误删除,其实遇到这种情况不需要紧张,如果问题较大,请DBA帮忙,如果只是小问题,只需自己处理,利用flashback闪回操作即可,可可将表进行恢复 在删除中数据时,系统会自动记录一个SCN和时间戳,按SCN和时间戳就可以查询出被误删除的资料 1.SCN 概念 SCN是当Oracle数据库更新后,由DBMS自动维护去累积递增的一个数字。
1059 0