例如,我在ORACLE一个事务里面做了如下操作:
update a set a1=12312;
update b set b1=12311;
insert into c(a1,b1)values(1111,2222);
commit;
请问如何在ORACLE数据库中跟踪到这部分语句。
即 两个update和一个insert
update a set a1=12312;
update b set b1=12311;
insert into c(a1,b1)values(1111,2222);
commit;
请问如何在ORACLE数据库中跟踪到这部分语句。
即 两个update和一个insert
这里看看,相信对你会有帮助的.
要查这个原因,那就要查重做日志文件,每次发生更新产生一个系统检查点(SCN)号,由SCN号可以区分哪个事务
Wrote file afiedt.buf 1 select xid, start_scn, commit_scn, row_id, operation
2 from flashback_transaction_query
3 where table_name = 'TEST'
4* and table_owner = 'HR'
SQL> /XID START_SCN COMMIT_SCN ROW_ID OPERATION
---------------- ---------- ---------- ------------------- ----------
02002300DD010000 1121386 1123054 AAAM0hAAEAAAAGGAAB INSERT
02002300DD010000 1121386 1123054 AAAM0hAAEAAAAGGAAA INSERT
03002600DB010000 0 1121505 AAAM0hAAEAAAAGFAAA DELETE
08001300D3010000 1115143 1121403 AAAM0hAAEAAAAGFAAA INSERT
同一个XID就代表是同一个事务