How to solve : SQL Error: ORA-00604: error occurred at recursive SQL level 1
How to solve : SQL Error: ORA-00604: error occurred at recursive SQL level 1
当我尝试删除 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.
一个可能的解释是数据库触发器为每个 DROP TABLE
语句触发。要查找触发器,请查询 _TRIGGERS
字典视图:
select * from all_triggers
where trigger_type in ('AFTER EVENT', 'BEFORE EVENT')
使用
禁用任何可疑触发器
alter trigger <trigger_name> disable;
并尝试重新运行您的DROP TABLE
声明
我注意到下面一行错误。
exact fetch returns more than requested number of rows
这意味着 Oracle 期待一行,但得到多行。而且,只有双table有那个特性,returns只有一行。
后来回想起来,我在dual table 和执行dual table 时都做了一些改动。然后发现多行。
因此,我截断了 dual
table 并仅插入了 X
值的行。而且,一切正常。
我能够通过清除删除来解决 "ORA-00604: error"。
DROP TABLE tablename PURGE
当我尝试删除 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.
一个可能的解释是数据库触发器为每个 DROP TABLE
语句触发。要查找触发器,请查询 _TRIGGERS
字典视图:
select * from all_triggers
where trigger_type in ('AFTER EVENT', 'BEFORE EVENT')
使用
禁用任何可疑触发器 alter trigger <trigger_name> disable;
并尝试重新运行您的DROP TABLE
声明
我注意到下面一行错误。
exact fetch returns more than requested number of rows
这意味着 Oracle 期待一行,但得到多行。而且,只有双table有那个特性,returns只有一行。
后来回想起来,我在dual table 和执行dual table 时都做了一些改动。然后发现多行。
因此,我截断了 dual
table 并仅插入了 X
值的行。而且,一切正常。
我能够通过清除删除来解决 "ORA-00604: error"。
DROP TABLE tablename PURGE