如何解决:SQL错误:ORA-00604:递归SQL级别1发生错误

时间:2015-05-27 09:15:19

标签: oracle oracle11g drop-table

当我试图删除表格时,我收到错误

SQL Error: ORA-00604: error occurred at recursive SQL level 2
ORA-01422: exact fetch returns more than requested number of rows
00604. 00000 -  "error occurred at recursive SQL level %s"
*Cause:    An error occurred while processing a recursive SQL statement
           (a statement applying to internal dictionary tables).
*Action:   If the situation described in the next error on the stack
           can be corrected, do so; otherwise contact Oracle Support.

3 个答案:

答案 0 :(得分:1)

一种可能的解释是为每个DROP TABLE语句触发的数据库触发器。要查找触发器,请查询_TRIGGERS字典视图:

select * from all_triggers
where trigger_type in ('AFTER EVENT', 'BEFORE EVENT')

使用

禁用任何可疑触发器
   alter trigger <trigger_name> disable;

并尝试重新运行DROP TABLE声明

答案 1 :(得分:0)

我注意到以下错误行。

exact fetch returns more than requested number of rows

然后,我在想..甲骨文期待一行,但它有多行。并且,只有双表具有该特征,它只返回一行。

并且,我记得,我在双表中做了一些更改,当我执行双表时。然后找到了多行。

现在,我截断了dual表,只插入X值的行。而且,一切正常。

答案 2 :(得分:0)

我可以通过放空清洗来解决“ ORA-00604:错误”。

DROP TABLE tablename PURGE