ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ORA-00604: error occurred at recursive SQL level 1

ORA-00604: error occurred at recursive SQL level 1

原创 Linux操作系统 作者:handsomeSJG 时间:2009-03-12 18:16:35 0 删除 编辑

ORA-00604: error occurred at recursive SQL level 1

ORA-01422: exact fetch returns more than requested number of rows

删除一个用户下的表,出现如上错误(oracle10.2.0.4)

SQL> drop table aidm_etl_id;
drop table aidm_etl_id
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-01422: exact fetch returns more than requested number of rows

尝试方法一:通过SQL_TRACE进行直接跟踪和利用10046 events跟踪,结果 .trc 文件中并没有错误信息。

方法二:找metalink ,发现这是个bug,bugID为6333310 ,在oracle11g中提供了解决方法。引起这个问题的原因是表 sys.dual 中有多行数据。本来张表中只有个“X”的值,上次我为了试一下 select count(*) from dual 和select * from dual对比,插入了几条记录,忘了删了。导致删除另一个schema下的表报错。

解决方法:将sys.dual表中非 “X”的值的记录全部删掉(随便保留一个值可不可以没试过)。

另外:执行如下操作后

SQL> insert into dual values('A');  COMMIT;

在linux后台登录sqlplus 查询的结果与 用 PL/SQL DEVELOPER查询的结果不同。

PL/SQL DEVELOPER 中执行 select * from dual; 总是能得到2条记录,而在后台也不一定,至于select count(*) from dual 在PL/SQL DEVELOPER 中则有时候能返回2,有时候能返回1。

 

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/297293/viewspace-567091/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-11-19

  • 博文量
    23
  • 访问量
    47495