近日在做全文检索,基础采用oracle text,版本是10g,做好管理页面后,有功能是删除索引,就是生成drop index的语句。没有想到这个全文检索的index这么直接弄还不行,经过这样删除的index涉及到的表,重新建立索引后,插入会报错
错误如下:
ora-29861:域索引标记为loading/failed/unusable
网上多数解释是说这个索引有问题了,但是这个索引根本没有问题,同步和重建这个索引都不能解决这个问题,知道我看到有人说是采用这样的方法查看索引的状态
select * from sys.all_indexes t where t.owner='CTXSYS' AND T.INDEX_TYPE='DOMAIN';
select owner,index_name from all_indexes where domidx_status != 'VALID' or domidx_opstatus !='VALID';
引文原话:
spatial indecies is not noramal, but domain.
And need to check domidx statuses.
我通过查询看到我报错的那个索引涉及到的表上之前建立的后来被删除的索引依旧在这个all_indexes 表里面,并且domidx_opstatus 是!= 'VALID'
我试着用drop index 这些domidx_opstatus 是!= 'VALID' 的索引,这次我的程序不报错了。