將shp數據導入oracle數據庫
步驟
-
在C盤創建一個test文件夾,把文件放進去: ;
-
打開cmd,輸入:shp2sdo c:\test\nanshanshequ3857 c:\test\nanshanshequ3857 -g geometry -d
之後test文件夾中會多出“nanshanshequ3857.ctl”和“nanshanshequ3857.sql”兩個文件; -
打開nanshanshequ3857.sql文件,把最下面的語句放到plsql裏執行;
-
它會在USER_SDO_GEOM_METADATA表中插入nanshanshequ3857,再輸入select t.*,t.rowid from USER_SDO_GEOM_METADATA t 可查看插入結果。
-
回到cmd中,按順序執行
sqlplus giser/bnjzgis@orcl@c:\test\nanshanshequ3857.sql
quit
sqlldr giser/bnjzgis@orcl c:\test\nanshanshequ3857
接着到plsql中的Command Window執行下面這句,對錶進行升級
execute sdo_migrate.to_current(‘nanshanshequ3857’);
建立空間索引,需要注意存入的幾何類型是否正確,必須有空間索引geoserver才能成圖CREATE INDEX INDEX_nanshanshequ3857_SPATIAL ON nanshanshequ3857 (GEOMETRY)INDEXTYPE
IS MDSYS.SPATIAL_INDEX PARAMETERS(‘LAYER_GTYPE=POLYGON’) NOPARALLEL; -
nanshanshequ3857.shp就成功導入oracle, 輸入select * from NANSHANSHEQU3857可查看, 可用geoserver發佈。
對sdo_geometry類型中的各個參數簡單的介紹:
1、SDO_GTYPE:表示要存儲的幾何類型,如點線面。它是通過NUMBER類型來表達的;
2、SDO_SRID:幾何的空間參考座標系,類型也爲NUMBER;
3、SDO_POINT:如果幾何類型點類型的話,就是存儲點座標,否則爲空。 oracle自定義的SDO_POINT_TYPE類型;
4、SDO_ELEM_INFO:定義要如何理解SDO_ORDINATES中的座標串的;
5、SDO_ORDINATES:存儲實際座標的,以X、Y以及不同點之間都是逗號隔開。