該文章並不是將Oracle Spatial與ST_Geometry做對比,關於兩者的對比,可以參考:,這裡從資料結構,到效能對比,都描述的很清楚。
其實這篇檔案就是說明一下在ArcGIS中使用OracleSpatial在ArcGIS與使用ST_Geometry的特徵不同,從不同的特徵也可以證明Oracle Spatial儲存與ST_Geometry儲存的結構對比。
問題1:怎麼判斷我的資料是否為Oracle Spatial儲存
- SQL> desc polygon_st
- 名稱 是否為空白? 類型
- ------------------------------------------------- ----------------------------
- OBJECTID NOT NULLNUMBER(38)
- NAME NVARCHAR2(30)
- CNTY_CODE NVARCHAR2(6)
- PROV NVARCHAR2(20)
- CITY NVARCHAR2(20)
- SHAPE SDE.ST_GEOMETRY
-
- SQL> desc polygon_sdo
- 名稱 是否為空白? 類型
- ------------------------------------------------- ----------------------------
- OBJECTID NOT NULLNUMBER(38)
- NAME NVARCHAR2(30)
- CNTY_CODE NVARCHAR2(6)
- PROV NVARCHAR2(20)
- CITY NVARCHAR2(20)
- SHAPE MDSYS.SDO_GEOMETRY
- SE_ANNO_CAD_DATA BLOB
我們使用Sqlplus進行串連,直接Desc相關的表,查看關於空間列的描述可以看出,很明顯的ST_Geometry 和MDSYS.SDO_GEOMETRY對比。
問題2:怎麼使用ArcGIS將資料匯入到ArcSDE中以Oracle Spatial儲存
可以使用ArcGIS的Import工具等將資料匯入到ArcSDE中,在匯入前選擇Configuration Keyword:選擇SDE_GEOMETRY。
該關鍵字主要是在SDEHOME/etc/dbtune.sde裡面控制(其他尾碼檔案也可以,也可以使用sdedbtune命令進行修改)
- ##DEFAULTS
-
- GEOMETRY_STORAGE "ST_GEOMETRY"
- ST_GEOM_LOB_STORAGE " STOREAS (
- # TABLESPACE<lob segment tablespace_name>
- ENABLE STORAGE IN ROW CHUNK 8K RETENTIONCACHE) "
-
- ATTRIBUTE_BINARY "BLOB"
- RASTER_STORAGE "BLOB"
- ......
-
- END
-
- -------------------------------------------分割線----------------
-
- ##SDO_GEOMETRY
- GEOMETRY_STORAGE "SDO_GEOMETRY"
- ATTRIBUTE_BINARY "BLOB"
- RASTER_STORAGE "SDO_GEORASTER"
- SDO_COMMIT_INTERVAL 1000
- RDT_STORAGE "PCTFREE 0INITRANS 4"
- # TABLESPACE<RDT Table tablespace name>
- RDT_INDEX_COMPOSITE "PCTFREE 0 INITRANS 4
- # TABLESPACE<RDT Composite index tablespace name>
- NOLOGGING"
- UI_TEXT "UserInterface text description for SDO_GEOMETRY"
-
- COMMENT "Anygeneral comment for SDO_GEOMETRY keyword"
-
- END
通過這個檔案說明,我們很容易看到系統資料按照什麼樣的儲存來選擇的。