EBS XTTS跨平台迁移,\创建空间索引时遇到的ORA-29855
过程描述:
CREATE INDEX "MST"."MST_MD_ADM_BNDS_N1" ON "MST"."MST_MD_ADMIN_BOUNDARIES" ("GEOMETRY") INDEXTYPE IS "MDSYS"."SPATIAL_INDEX";
*
ERROR at line 1:
ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
ORA-13203: failed to read USER_SDO_GEOM_METADATA view
ORA-13203: failed to read USER_SDO_GEOM_METADATA view
ORA-06512: at "MDSYS.SDO_INDEX_METHOD_10I", line 10
问题分析:
(1)使用以下语句查看创建索引结果:
select index_name,table_owner,table_name,status,ityp_owner,ityp_name,domidx_status,domidx_opstatus
from dba_indexes where index_name='MST_MD_ADM_BNDS_N1';
DOMIDX_OPSTATUS对应的为FAILED,说明创建空间索引失败。
使用drop index "MST"."MST_MD_ADM_BNDS_N1" 删除索引
(2)使用以下语句查看相应元数据:
select * from mdsys.sdo_geom_metadata_table where sdo_table_name='MST_MD_ADMIN_BOUNDARIES';
原因:
当时创建空间表时没有创建相应的空间元数据。
解决办法:
(1)先在mdsys.sdo_geom_metadata_table中使用以下语句创建相应的元数据
insert into mdsys.sdo_geom_metadata_table
(sdo_owner, sdo_table_name, sdo_column_name, sdo_diminfo, sdo_srid)
values
('MST',
'MST_MD_ADMIN_BOUNDARIES',
'GEOMETRY',
mdsys.sdo_dim_array(mdsys.sdo_dim_element('X', -180, 180, 0.000005),
mdsys.sdo_dim_element('Y', -90, 90, 0.000005)),
'');
(2)再执行空间索引创建语句,问题得到解决。
总结:
在创建空间索引时先创建相应的元数据。
评论
