合併大陸及臺灣地區的shape數據

從gadm.org下載大陸和臺灣地區的行政區劃shape數據,導入數據庫後,直接把臺灣地區的數據插入到CHN_ADM1的表中,提交事務時,出現下面錯誤:sql

ORA-29875: 沒法執行 ODCIINDEXINSERT 例行程序
ORA-13031: SDO_GEOMETRY 對象中用於點對象的 Gtype 無效
ORA-06512: 在 "MDSYS.SDO_INDEX_METHOD_10I", line 720
ORA-06512: 在 "MDSYS.SDO_INDEX_METHOD_10I", line 225數據庫

View program sources of error stack?code

發現上海的空間數據有問題,修正語句對象

UPDATE CHN_ADM1 t
SET t.geometry = MDSYS.SDO_GEOMETRY(2003, 8307, NULL, MDSYS.SDO_ELEM_INFO_ARRAY(1, 1003, 1), MDSYS.SDO_ORDINATE_ARRAY(...))
WHERE t.id_1 = 24

運行出現錯誤索引

ORA-29861: 域索引標記爲 LOADING/FAILED/UNUSABLE 事務

刪除索引後,再次運行成功插入。重建索引。class

create index SIDX_CHN_ADM1 on CHN_ADM1 (GEOMETRY)
  indextype is MDSYS.SPATIAL_INDEX

 

發現TWN_ADM1的記錄有多行,不是和CHN_ADM1一行記錄(省)等價。date

update CHN_ADM1 c1 set (c1.geometry)=(
select t0.geometry from TWN_ADM0 t0)
where p1.name_0='Taiwan';
相關文章
相關標籤/搜索