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

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/30478070/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-09 00:52:23  来源:igfitidea点击:

How to solve : SQL Error: ORA-00604: error occurred at recursive SQL level 1

oracleoracle11gdrop-table

提问by Ravi

When I'm trying to drop table then I'm getting error

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

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.

采纳答案by Ravi

I noticed following line from error.

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

exact fetch returns more than requested number of rows

Then, I was thinking.. Oracle was expecting one row but It was getting multiple rows. And, only dual table has that characteristic, which returns only one row.

然后,我在想.. Oracle 期待一行,但它得到了多行。而且,只有双表具有该特性,它只返回一行。

And, I remember that, I have done few changes in dual table and when I executed dual table. Then found multiple rows.

而且,我记得,我在双表和执行双表时做了很少的更改。然后发现多行。

Now, I truncated dualtable and inserted only row which Xvalue. And, everything working fine.

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

回答by Frank Schmitt

One possible explanation is a database trigger that fires for each DROP TABLEstatement. To find the trigger, query the _TRIGGERSdictionary views:

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

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

disable any suspicious trigger with

禁用任何可疑触发器

   alter trigger <trigger_name> disable;

and try re-running your DROP TABLEstatement

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