原来做过什么操作,不记得了。 现象是 删除表是 有下面的错误。
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.
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.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25099483/viewspace-1178838/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25099483/viewspace-1178838/