DROP TABLE ORA-01422

原来做过什么操作,不记得了。 现象是 删除表是 有下面的错误。
SQL> select * from v$version;


BANNER
--------------------------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE    10.2.0.4.0      Production
TNS for Linux: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production


SQL> drop table test;
drop table test
           *
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-01422: exact fetch returns more than requested number of rows
通过下面的语句跟踪:
alter session set events '1422 trace name errorstack level 4';
。。。。。


alter session set events '1422 trace name errorstack off';


从跟踪的文件中得到:
ksedmp: internal or fatal error
ORA-01422: exact fetch returns more than requested number of rows
Current SQL statement for this session:
select o.type# from sys.obj$ o, sys.user$ u where u.name = :1 and u.user# = o.ow
ner# and o.name = :2 and o.type# in (2, 4)




SQL> select o.type#,O.NAME,O.OWNER# from sys.obj$ o, sys.user$ u where u.name ='SYS' and u.user# = o.owner# and o.name = 'TEST' and o.type# in (2, 4);


     TYPE# NAME           OWNER#
---------- -------------------------------------
         2 TEST            0
         2 TEST            0




SQL> SELECT COUNT(*) FROM DBA_RECYCLEBIN;


  COUNT(*)
----------
         0
         
 决定把不是的那一条记录删除掉:        
SELECT O.ROWID,O.* FROM OBJ$ O WHERE O.NAME='TEST' AND O.OWNER#=0;
 
DELETE FROM OBJ$ WHERE ROWID='AAAAASAABAAAMV+ABA';
COMMIT;
再次 drop 时, 发生了  600错识破, 查看 aler中,有下面的错误:


Mon Jun  9 13:23:34 2014
Errors in file /u01/app/oracle/admin/ora10/udump/ora10_ora_6377.trc:
ORA-00600: internal error code, arguments: [ktagetg0-1], [], [], [], [], [], [], []


参考 :Ora-00600: Internal Error Code, Arguments: [Ktagetg0-1], [], [], [], [], (Doc ID 1302377.1)
清空共享池之后,再次删除:  成功删除掉。


SQL> alter system flush shared_pool;


System altered.


SQL> drop table test;


Table dropped.
请使用浏览器的分享功能分享到微信等