ora-29861:域索引标记为loading/failed/unusable
网上多数解释是说这个索引有问题了,但是这个索引根本没有问题,同步和重建这个索引都不能解决这个问题,知道我看到有人说是采用这样的方法查看索引的状态
Sql代码
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';
我通过查询看到我报错的那个索引涉及到的表上之前建立的后来被删除的索引依旧在这个all_indexes 表里面,并且domidx_opstatus 是!= 'VALID'
drop index index_name
查看创建索引结果:
select INDEX_NAME,TABLE_OWNER,TABLE_NAME,STATUS,ITYP_OWNER,ITYP_NAME,DOMIDX_STATUS,DOMIDX_OPSTATUS from user_indexes where ITYP_NAME is not null;
查看相应元数据:
select * from user_sdo_geom_metadata
在user_sdo_geom_metadata中使用以下语句创建相应的元数据(SDO_DIM_ELEMENT值是固定的)
insert into user_sdo_geom_metadata(table_name,COLUMN_NAME, DIMINFO, SRID)
values(
'GC_ROAD_SEGMENT_CH',
'GEOMETRY',
MDSYS.SDO_DIM_ARRAY(
MDSYS.SDO_DIM_ELEMENT('X',-180,180,0.005),
MDSYS.SDO_DIM_ELEMENT('Y',-90,90,0.005)
),
8307
)
(2)再执行空间索引创建语句:
CREATE INDEX GC_ROAD_SEGMENT_CH_SIDX ON GC_ROAD_SEGMENT_CH(GEOMETRY) INDEXTYPE IS MDSYS.SPATIAL_INDEX;
无错误提示,问题得到解决。