我使用的是Oracle11g(OracleDatabase11gEnterpriseEdition 11.1.0.7.0-64位生产版),我有一个表,其列类型为SDO_GEOMETRY。我想在这个列上创建一个空间索引(NEW_SHAPE)。我的查询如下:
CREATE INDEX GIS_GEOM_SRID3857_SPTIDX ON GIS_GEOM_SRID3857_LOOKUP ( NEW_SHAPE )
INDEXTYPE IS MDSYS.SPATIAL_INDEX;
/我得到了以下错误:
Error starting at line : 23 in command -
CREATE INDEX GIS_GEOM_SRID3857_SPTIDX ON GIS_GEOM_SRID3857_LOOKUP ( NEW_SHAPE )
INDEXTYPE IS MDSYS.SPATIAL_INDEX
Error report -
ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
ORA-13249: SRID 3857 does not exist in MDSYS.CS_SRS table
ORA-29400: data cartridge error
Error - OCI_NODATA
ORA-06512: at "MDSYS.SDO_INDEX_METHOD_10I", line 10
29855. 00000 - "error occurred in the execution of ODCIINDEXCREATE routine"
*Cause: Failed to successfully execute the ODCIIndexCreate routine.
*Action: Check to see if the routine has been coded correctly.我对这些错误进行了搜索,但没有发现任何有用的东西。如果你能为我指出正确的方向,帮助我找出我所面临的问题,我将非常感激。这会帮我节省很多时间。非常感谢您的协助。
发布于 2017-09-29 13:45:19
首先,您的数据必须是实际上是SRID 3857 ,对于表的所有行, sdo_geom.srid必须设置为3857,这样以后的处理才能工作。
现在,由于出现错误,在user_sdo_geom_metadata中srid设置为3857。所以问题是:数据库的SRID中是否存在SRID 3857?
如果没有,您必须插入它,删除空间索引(通常会创建失败的索引)并重新创建它。
如果你需要帮助,请告诉我.
https://stackoverflow.com/questions/46468409
复制相似问题