|
elete from transaction_table where tid =3;
已删除 1 行。
SQL> commit;
提交完成。
SQL> --如何撤销第二个事务??
SQL> --视图flashback_transaction_query
SQL> desc flashback_transaction_query
名称 是否为空? 类型
----------------------------------------------------------------------------------- -------- --------------------------------------------------------
XID RAW(8)
START_SCN NUMBER
START_TIMESTAMP DATE
COMMIT_SCN NUMBER
COMMIT_TIMESTAMP DATE
LOGON_USER VARCHAR2(30)
UNDO_CHANGE# NUMBER
OPERATION VARCHAR2(32)
TABLE_NAME VARCHAR2(256)
TABLE_OWNER VARCHAR2(32)
ROW_ID VARCHAR2(19)
UNDO_SQL VARCHAR2(4000)
SQL> --得到XID
SQL> select tid,tname,versions_operation 操作,versions_starttime 起始时间,
2 versions_endtime 结束时间,versions_xid 事务号
3 from transaction_table
4 versions between TIMESTAMP MINVALUE and MAXVALUE
5 order by 事务号;
TID TNAME 操作 起始时间 结束时间 事务号
--- ---------- ---- ------------------------------ ------------------------------ ----------------
3 Mike I 25-10月-12 11.29.38 上午 25-10月-12 11.30.23 上午 0100100060050000
2 Mary I 25-10月-12 11.29.38 上午 25-10月-12 11.30.23 上午 0100100060050000
1 Tom I 25-10月-12 11.29.38 上午 0100100060050000
2 MaryNew U 25-10月-12 11.30.23 上午 080029005C050000
3 Mike D 25-10月-12 11.30.23 上午 080029005C050000
SQL> select operation,undo_sql
2 from flashback_transaction_query
3 where xid='080029005C050000';
OPERATION
--------------------------------
UNDO_SQL
------------------------------------------------------------------------------------------------------------------------------------------------------
DELETE
insert into "SCOTT"."TRANSACTION_TABLE"("TID","TNAME") values ('3','Mike');
UPDATE
update "SCOTT"."TRANSACTION_TABLE" set "TNAME" = 'Mary' where ROWID = 'AAANpoAAEAAAAJvAAB';
BEGIN
SQL> insert into "SCOTT"."TRANSACTION_TABLE"("TID","TNAME") values ('3','Mike')
2 ;
已创建 1 行。
SQL> update "SCOTT"."TRANSACTION_TABLE" set "TNAME" = 'Mary' where ROWID = 'AAANpoAAEAAAAJvAAB';
已更新 1 行。
SQL> commit;
提交完成。
SQL> select * from transaction_table;
TID TNAME
--- ----------
1 Tom
2 Mary
3 Mike
SQL> spool off
|