如帖分析,600错误是oracle内部bug造成的,有可能是环境问题,有可能是oracle版本问题,如果是版本太低先打补丁。
查询oracle版本: select * from v$version;
对于这样的问题,可参照一下步骤解决
1、先定位失效索引
SELECT object_name FROM dba_objects WHERE object_id ='string';//堆栈中[string]列
SELECT index_name FROM dba_indexes WHERE table_name='object_name ';
2、查看索引是否失效
select index_name,status from user_indexes where index_name='index_name'; // status=vaild/useable 表示索引正常
3、rebulid方式重建索引
alter index [index_name] rebuild;
4、测试后如果还出现同一索引失效,则采用drop,create方式重现索引
drop index index_name;
create index........(具体语句先查询原表创建索引语句,照着执行一遍即可)
5、注意如果drop掉表后要重置Z表