ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle10g-版本查询

Oracle10g-版本查询

原创 Linux操作系统 作者:oracle_ace 时间:2008-01-23 15:22:06 0 删除 编辑

C:\>set ORACLE_SID=irmdb

C:\>sqlplus /nolog

SQL*Plus: Release 10.2.0.3.0 - Production on 星期三 1月 23 15:05:33 2008

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

SQL> conn / as sysdba;
已连接。
SQL> create table t
  2  ( id number(5),
  3    name varchar2(10),
  4    constraint t_pk primary key(id));

表已创建。

SQL> insert into t values(1,'a');

已创建 1 行。

SQL> commit;

提交完成。

SQL> update t set name='b';

已更新 1 行。

SQL> commit;

提交完成。

SQL> update t set name='c
  2  ';

已更新 1 行。

SQL> commit;

提交完成。

SQL> delete t;

已删除 1 行。

SQL> commit;

提交完成。

SQL> insert into t values(1,'d');

已创建 1 行。

SQL> commit;

提交完成。

SQL> update t set name='e';

已更新 1 行。

SQL> commit;

提交完成。

SQL> select * from t;

        ID NAME
---------- ----------
         1 e

SQL> set linesize 100
SQL> set pagesize 80
SQL> select versions_starttime,versions_endtime,versions_xid,versions_operation,name
  2  from t versions between timestamp minvalue and maxvalue
  3  order by versions_starttime;

VERSIONS_STARTTIME
---------------------------------------------------------------------------
VERSIONS_ENDTIME                                                            VERSIONS_XID     V
--------------------------------------------------------------------------- ---------------- -
NAME
----------
23-1月 -08 03.09.29 下午
23-1月 -08 03.09.35 下午                                                    01002E00F4030000 I
a

23-1月 -08 03.09.35 下午
23-1月 -08 03.09.47 下午                                                    03001C00E9030000 U
b

23-1月 -08 03.09.47 下午
23-1月 -08 03.09.53 下午                                                    05001500FE030000 U
c

23-1月 -08 03.09.53 下午
                                                                                                   04002300EB030000 D
c

23-1月 -08 03.09.59 下午
23-1月 -08 03.10.08 下午                                                    06000100E5030000 I
d

23-1月 -08 03.10.08 下午
                                                                                                   07001E00EA030000 U
e


已选择6行。

在上述查询中,列versions_starttime、versions_endtime、versions_xid、versions_operation是伪列,与 ROWNUM、LEVEL 等其他熟悉的伪列相类似。其他伪列如VERSIONS_STARTSCN和VERSIONS_ENDSCN,显示了该时刻的系统更改号。列versions_xid 显示了更改该行的事务标识符。有关该事务的更多详细信息可在视图FLASHBACK_TRANSACTION_QUERY 中找到,其中列 XID 显示事务 id。例如,使用上述的VERSIONS_XID 值07001E00EA030000,UNDO_SQL 值显示了实际的语句。

SQL> select undo_sql from flashback_transaction_query where xid='07001E00EA030000';

UNDO_SQL
----------------------------------------------------------------------------------------------------
update "SYS"."T" set "NAME" = 'd' where ROWID = 'AAANbCAABAAAPTiAAB';

到这里通过versions_xid这个列可以获得事务ID,来查询我们的SQL。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12361284/viewspace-157800/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-12-10

  • 博文量
    284
  • 访问量
    786178