欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle 9.2.0.4 数据库truncate表-ORA-00600:[ktsircinfo_num1之看似bug

程序员文章站 2022-04-08 20:11:17
...

oracle 9.2.0.4 数据库truncate表报错:ORA-00600: internal error code, arguments: [ktsircinfo_num1], [13], [0], [0], [], [

Oracle 9.2.0.4 数据库truncate表报错:
ORA-00600: internal error code, arguments: [ktsircinfo_num1], [13], [0], [0], [], [], [], []
其实,,在truncate之前,曾在该表上执行了创建索引操作create index 。。。online时,会话被意外kill了;
再来删除该表的上的索引:
SQL> drop index wap_user.idx_AM_MONITOR_DATA_MONITORID;
drop index wap_user.idx_AM_MONITOR_DATA_MONITORID
*
ERROR at line 1:
ORA-08104: this index object 1024126 is being online built or rebuilt

报ORA-08104错误,通过处理内部数据字表来处理(需谨慎)
1.获取用户下表SYS_JOURNAL_#index_object_id并删除
SQL> select object_name
2 from dba_objects
3 where object_name like
4 (select '%' || object_id || '%'
5 from dba_objects
6 where object_name = '&INDEX_NAME')
7 /
Enter value for index_name: IDX_AM_MONITOR_DATA_MONITORID
old 6: where object_name = '&INDEX_NAME')
new 6: where object_name = 'IDX_AM_MONITOR_DATA_MONITORID')
OBJECT_NAME
--------------------------------------------------------------------------------------------------------------------------------
SYS_JOURNAL_1024126

SQL> drop table wap_user.SYS_JOURNAL_1024126;
Table dropped.

2.删除IND$表中对应记录(需谨慎)
SQL> delete from IND$ where obj#=&INDEX_OBJECT_ID
2 ;
Enter value for index_object_id: 1024126
old 1: delete from IND$ where obj#=&INDEX_OBJECT_ID
new 1: delete from IND$ where obj#=1024126
1 row deleted.
Elapsed: 00:00:00.00

3.truncate 成功
SQL> truncate table wap_user.AM_MONITOR_DATA_ALL_O;
Table truncated.
Elapsed: 00:00:50.87

Oracle 9.2.0.4 数据库truncate表-ORA-00600:[ktsircinfo_num1之看似bug