4

当我试图删除表时,我得到了错误

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.
4

3 回答 3

1

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

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

禁用任何可疑触发器

   alter trigger <trigger_name> disable;

并尝试重新运行您的DROP TABLE语句

于 2015-05-27T10:14:05.033 回答
1

我注意到错误中的以下行。

exact fetch returns more than requested number of rows

这意味着甲骨文期待一行,但它得到了多行。而且,只有双表具有该特性,它只返回一行。

后来回想起来,我在dual table和执行dual table的时候都做了一些改动。然后发现多行。

所以,我截断dual了表并只插入了哪个X值的行。而且,一切正常。

于 2015-05-28T06:58:46.073 回答
-1

我能够通过清除删除来解决“ORA-00604:错误”。

DROP TABLE tablename PURGE
于 2020-06-18T16:26:15.817 回答