ORA-00604: error occurred at recursive SQL level 1

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/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/297293/viewspace-567091/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值