2017-09-28 94 views
0

我使用Oracle 11g (Oracle數據庫11g企業版發佈11.1.0.7.0 - 64位生產)和我有了型SDO_GEOMETRY的列的表。我想在此列上創建一個空間索引(NEW_SHAPE)。我的查詢是如下:錯誤創建在Oracle 11g中的SDO_GEOMETRY列的空間索引

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. 

我已搜查配發的這些錯誤,但沒有發現任何有用的東西。如果您能指出我的正確方向並幫助確定我所面臨的問題,我將非常感激。這將節省我的時間。非常感謝您的幫助。

+0

有一個已知的問題:「缺少11.2.0.3 SRID 3857從11.1.0.7升級之後。」 – Rene

+0

我沒有升級。我使用的版本是:「Oracle數據庫11g企業版版本11.1.0.7.0 - 64位生產」 – Amir

回答

0

首先,您的數據必須實際上是SRID 3857 sdo_geom.srid設置爲3857爲表中的所有行,爲今後處理工作。

現在,由於錯誤發生,srid在user_sdo_geom_metadata中設置爲3857。所以問題是:SRIDs是否存在於DB的SRIDs
如果不是,您必須插入它,刪除空間索引(通常創建失敗的索引)並重新創建它。

讓我知道如果你需要任何上述的任何幫助......