FlashbackQuery查询操作的事务

   Flashback Query:查询过去某个时间点对象中保存的记录信息,在当前时间与指定过去某个时间点之间。

  SQL> conn scott/oracle

  Connected.

  SQL> select dbms_flashback.get_system_change_number from dual;

  GET_SYSTEM_CHANGE_NUMBER

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

  1196559

  SQL> update flash_tbl set id=id+100 where id>15;

  5 rows updated.

  SQL> commit;

  Commit complete.

  SQL> delete flash_tbl where id<5;

  4 rows deleted.

  SQL> commit;

  Commit complete.

  SQL> desc flash_tbl

  Name Null? Type

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

  ID NUMBER

  VL VARCHAR2(1)

  SQL> insert into flash_tbl values(300,'r');

  1 row created.

  SQL> insert into flash_tbl values(500,'t');

  1 row created.

  SQL> select dbms_flashback.get_system_change_number from dual;

  GET_SYSTEM_CHANGE_NUMBER

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

  1196625

  SQL> select id,vl,versions_startscn,versions_endscn,versions_operation,versions_xid from flash_tbl versions between scn 1196559 and 1196625;

  ID V VERSIONS_STARTSCN VERSIONS_ENDSCN V VERSIONS_XID

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

  120 S 1196576 U 0700290074010000

  119 R 1196576 U 0700290074010000

  118 Q 1196576 U 0700290074010000

  117 P 1196576 U 0700290074010000

  116 O 1196576 U 0700290074010000

  10 I

  11 J

  12 K

  13 L

  14 M

  15 N

  ID V VERSIONS_STARTSCN VERSIONS_ENDSCN V VERSIONS_XID

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

  16 O 1196576

  17 P 1196576

  18 Q 1196576

  19 R 1196576

  20 S 1196576

  4 C 1196588 D 08000B0096010000

  3 B 1196588 D 08000B0096010000

  2 A 1196588 D 08000B0096010000

  1 / 1196588 D 08000B0096010000

  1 / 1196588

  2 A 1196588

  ID V VERSIONS_STARTSCN VERSIONS_ENDSCN V VERSIONS_XID

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

  3 B 1196588

  4 C 1196588

  5 D

  6 E

  7 F

  8 G

  9 H

  29 rows selected.

  根据记录,可以看到开始SCN和结束SCN,从操作列有I(插入),U(更新),D(删除),还有事务ID。

  SQL> select dbms_flashback.get_system_change_number from dual;

  GET_SYSTEM_CHANGE_NUMBER

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

  1200548

  SQL> delete flash_tbl where id=116;

  1 row deleted.

  SQL> commit;

  Commit complete.

  SQL> select dbms_flashback.get_system_change_number from dual;

  GET_SYSTEM_CHANGE_NUMBER

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

  1200555

  SQL> conn / as sysdba

  Connected.

  SQL> grant select any transaction to scott;

  Grant succeeded.

  SQL> conn scott/oracle

  Connected.

  SQL> select xid,commit_scn,commit_timestamp,operation,undo_sql from flashback_transaction_query Q where Q.xid in(select versions_xid from flash_tbl versions between

  scn 1200548 and 1200555);

  XID COMMIT_SCN COMMIT_TI OPERATION

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

  UNDO_SQL

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

  0A002F0062010000 1200554 31-MAR-14 DELETE

  insert into "SCOTT"."FLASH_TBL"("ID","VL") values ('116','O');

  0A002F0062010000 1200554 31-MAR-14 BEGIN

  通过上面可以看到,刚才所做的操作及时间,与LogMiner功能挺像。

时间: 2024-08-22 14:28:32

FlashbackQuery查询操作的事务的相关文章

全面解析Hibernate关联操作、查询操作、高级特性、并发处理机制_java

本文所需的数据库初始文件,Hibernate常用操作的完整示例代码(包含所有Hibernate操作所需jar文件)提供下载学习:http://download.csdn.net/detail/daijin888888/9551724 1.Hibernate关联映射     1)什么是关联映射?         如果表之间具有关联关系,Hibernate允许我们在hbm.xml中描述他们的关联关系,然后在我们操作其中一张表时,自动的根据这种关系操作到另外的关系表,那么这种关联关系的设置,我们称之为

在三个层次对Asp.Net的数据操作进行事务

asp.net|数据 很多数据库操作需要进行事务,Asp.net下面进行事务大致有3个层次:(1)存储过程层次的事务(2)Ado.Net层次的事务(3)Asp.Net页面层次的事务下面分别举例:首先建立trantest表,字段id(int),test(char)为id设置主键(利用主键是不允许重复的特性进行事务测试) (1)CREATE PROCEDURE Tran1asbegin tranInsert Into trantest (id,test)values(1,'test')Insert

LINQ基本查询操作

下面各主题中提供了更详细的信息:获取数据源 在 LINQ 查询中,第一 步是指定数据源.像在大多数编程语言中一样,在 C# 中,必须先声明变量,才 能使用它.在 LINQ 查询中,最先使用 from 子句的目的是引入数据源 (customers) 和范围变量 (cust). //queryAllCustomers is an IEnumerable<Customer> var queryAllCustomers = from cust in customers select cust; 范围

Oracle 9i中的一个闪回查询操作实例

在利用闪回功能前需要确认: 1.用户有对dbms_flashback包有执行权限! 2.进行闪回查询必须设置自动回滚段管理,在init.ora设置参数UNDO_MANAGEMENT=AUTO,参数UNDO_RETENTION=n,决定了能往前闪回的最大时间,值越大就需要越多Undo空间. Oracle 9i中闪回查询操作实例 查看Oracle中Delete和Commit操作的流程分析 例:Oracle 9i的Flashback Query操作. (1)创建闪回查询用户 SQL> create u

数据库组件 Hxj.Data (三)(查询操作篇)

Hxj.Data使用入口在Hxj.Data.DbSession,DbSession类封装常用的操作,比如: From<T>,Insert<T>,Update<T>,Delete<T>等常用方法. DbSession.Default是一个默认的DbSession.在默认情况下会自动读取web.config/app.config配置文件中connectionStrings节点的最后一 个配置. 可以通过条用DbSession的SetDefault方法来修改这个D

LINQ查询操作全面分析

学习LINQ查询时,经常会遇到LINQ查询操作问题,这里将介绍LINQ查询操作问题的解决方法. 语言集成查询 (LINQ) 是 Visual Studio 2008 和 .NET Framework 3.5 版中一项突破性的创新,它在对象领域和数据领域之间架起了一座桥梁. 传统上,针对数据的查询都是以简单的字符串表示,而没有编译时类型检查或 IntelliSense 支持.此外,您还必须针对以下各种数据源学习不同的查询语言:SQL 数据库.XML 文档.各种 Web 服务等.LINQ 使查询成为

tomcat启动报错-SSH + Oracle 整合开发 启动服务报错,运行查询操作,没影响

问题描述 SSH + Oracle 整合开发 启动服务报错,运行查询操作,没影响 信息: Initializing Spring root WebApplicationContextlog4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).log4j:WARN Please initialize the log4j system properly.2013-1

MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)

[正文] 首先需要回顾一下上一篇文章中的内容:MySQL数据库学习笔记(八)----JDBC入门及简单增删改数据库的操作 一.ResultSet接口的介绍: 对数据库的查询操作,一般需要返回查询结果,在程序中,JDBC为我们提供了ResultSet接口来专门处理查询结果集. Statement通过以下方法执行一个查询操作: ResultSet executeQuery(String sql) throws SQLException  单词Query就是查询的意思.函数的返回类型是ResultSe

急急急!!!ibatis一对多映射查询操作 千回百转仍无法定位异常

问题描述 急急急!!!ibatis一对多映射查询操作 千回百转仍无法定位异常 直接上代码吧先看基础类public class MetaInfo extends BaseObject{ private String id ; //索引 private String ename ; //字段名称 private String type ; //字段类型 private String length ; //字段长度 private String cname ; //中文名称 private Strin