在尝试撤销事务时,有时会出现以下的错误信息:
SQL> CREATE TABLE T_FLASH_TRANS (ID NUMBER, NAM E VARCHAR2(30)); 表已创建。 SQL> INSERT INTO T_FLASH_TRANS VALUES (1, ’A’); 已创建 1 行。 SQL> COMMIT; 提交完成。 SQL> UPDATE T_FLASH_TRANS SET NAME = ’C’ WHERE ID = 1; 已更新 1 行。 SQL> COMMIT; 提交完成。 SQL> UPDATE T_FLASH_TRANS SET NAME = ’D’ WHERE ID = 1; 已更新 1 行。 SQL> INSERT INTO T_FLASH_TRANS VALUES (2, ’B’); 已创建 1 行。 SQL> COMMIT; 提交完成。 SQL> CONN SYS@ORA11G AS SYSDBA输入口令: ****已连接。 SQL> SELECT XID, OPERATION, UNDO_SQL 2 FROM FLASHBACK_TRANSACTION_QUERY 3 WHERE TABLE_NAME = ’T_FLASH_TRANS’; XID OPERATION UNDO_SQL ---------------- ---------- 01001B00D8120000 INSERT delete from "YANGTK"."T_FLASH_TRANS" where ROWID = ’AAARpjAAGAAADB9AAB’; 01001B00D8120000 UPDATE update "YANGTK"."T_FLASH_TRANS" set "NAME" = ’C’ where ROWID = ’AAARpjAA 03000D00F40E0000 INSERT delete from "YANGTK"."T_FLASH_TRANS" where ROWID = ’AAARpjAAGAAADB9AAA’; 0A001800ED110000 UPDATE update "YANGTK"."T_FLASH_TRANS" set "NAME" = ’A’ where ROWID = ’AAARpjAA SQL> DECLARE 2 V_XID XID_ARRAY; 3 BEGIN 4 V_XID := SYS.XID_ARRAY(’0A001800ED110000’); 5 DBMS_FLASHBACK.TRANSACTION_BACKOUT (1, V_XID, DBMS_FLASHBACK.CASCADE); 6 END; 7 / DECLARE *第 1 行出现错误: ORA-55505: 在挖掘起始 SCN 后已经对感兴趣的对象完成了 DDL ORA-06512: 在 "SYS.DBMS_FLASHBACK", line 37 ORA-06512: 在 "SYS.DBMS_FLASHBACK", line 70 ORA-06512: 在 line 5 |
我们从这个错误信息上可以发现,在指定的SCN后发生了DDL语句。
现在我们来查询一下Oracle的metalink,你可以发现是由于事务与建表DDL时间间隔太段造成的,假如时间间隔超过6秒,就不会出现这个错误。
注释:此问题的出现是继承了LOGMINER的特点,在Metalink的文档Bug No. 5750226对这个问题进行了详细的描述。
Web: http://www.qqread.com/oracle/2007/12/e388919.html进入讨论组讨论。相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- 用“kill”命令终止“Oracle”的过程 (0次浏览)
- 深入了解Oracle的最大可用性体系结构 (0次浏览)
- 基于SQL几个常用的几个系统表 (0次浏览)
- Oracle本周二将发布27个安全漏洞补丁 (0次浏览)
- 如何在Oracle数据库中屏蔽英文提示信息 (0次浏览)
- 数据库文件的加载和挂起 (0次浏览)
- 数据库技术:在不断的完善中继续前行 (0次浏览)
- 安装Oracle 9i遇到的两个问题 (0次浏览)
- TransactionScope中优先使用Oracle的.NET驱动 (0次浏览)
- 详细介绍手工创建oracle数据库 (0次浏览)



