Oracle空間查詢 ORA 28595

2021-09-22 17:27:47 字數 1798 閱讀 2535

可使用資料庫管理系統 (dbms) 的結構化查詢語言 (sql)、資料型別和**式來處理地理資料庫或安裝了 st_geometry 型別的資料庫中所儲存的資訊。

例如,在arcmap中我們使用"相交"工具進行空間操作;arcobject介面裡用itopologicaloperator.intersect來實現。現在,我們可以脫離介面,實現資料的空間操作,從效能和架構的角度來說,這值得深入研究。在sql server中用stintersects方法,在oracle中使用sdo_filter(注意這裡不叫sdo_intersects哈),在arcgis中用sde.st_intersects方法。

sql server方法:

arcgis方法:

為了方便重用,我們使用了arcgis中的方法。但遇到乙個配置錯誤!

執行st_geometry

"error at line 1:

ora-28595: extproc agent : invalid dll path

ora-06512: at "sde.st_geometry_shapelib_pkg", line 170

ora-06512: at "sde.st_relation_operators", line 303"

即語法沒有錯誤,只是不能呼叫dll,在 oracle 中,st_geometry 和 st_raster 的 sql 函式使用通過 oracle 的外部過程**(即 extproc)訪問的共享庫。oracle 必須能夠訪問這些庫。因此,這些庫必須存在於 oracle 伺服器上,並且必須通過 oracle 的外部過程框架呼叫它們。

顯示是沒找到這個些dll,按照官網的解決方法,總是啟動不了oracle監聽服務。

配置 oracle extproc 以使用 sql 訪問地理資料庫

1.找到dll,其實它依靠兩個dll,一是st_shapelib.dll,st_geometry的庫,二是libst_raster_ora.dll,st_raster的庫。它們的路徑位於:

arcsde下的路徑:

c:\program files (x86)\arcgis\arcsde\ora10gexe\bin\st_shapelib.dll;

c:\program files (x86)\arcgis\arcsde\ora10gexe\bin\libst_raster_ora.dll

arcdeskop下的路徑

d:\program files\arcgis\desktop10.4\databasesupport\oracle\windows64\st_shapelib.dll;

d:\program files\arcgis\desktop10.4\databasesupport\oracle\windows64\ libst_raster_ora.dll;

2.新建環境變數:新建乙個系統環境變數

變數名:extproc_dlls

變數值:兩個

dll的全路徑,中間用分號隔開,如c:\sdedll\st_shapelib.dll;c:\sdedll\libst_raster_ora.dll

(這裡是將兩個dll新增到新建的sdedll資料夾中的,因為伺服器上可能沒有安裝sde伺服器)

3.重啟服務:重新啟動oracle監聽服務oracleoradb10g_home1tnslistener

oracle空間查詢

表空間使用情況 select upper f.tablespace name 表空間名 d.tot grootte mb 表空間大小 m d.tot grootte mb f.total bytes 已使用空間 m to char round d.tot grootte mb f.total byt...

oracle 表空間 查詢

知道表空間名,顯示該錶空間包括的所有表。select from all tables where tablespace name 表空間名 知道表名,檢視該錶屬於那個表空間 select tablespace name,table name from user tables where table ...

Oracle表空間查詢

查詢表空間使用情況 select upper f.tablespace name 表空間名 d.tot grootte mb 表空間大小 m d.tot grootte mb f.total bytes 已使用空間 m to char round d.tot grootte mb f.total b...