配置st_geometry.dll(以ArcGIS10.5.1+Oracle12c R1为例)

准备工作:

首先当然是找到st_geometry.dll文件,比如我本机的:

C:\Program Files (x86)\ArcGIS\Desktop10.5\DatabaseSupport\Oracle\Windows64

目录下找到st_shapelib.dll文件。


其次,找到Oracle的服务端的安装目录,比如我我本机的:D:\Oracle\product\12.1.0\dbhome_1,找到BIN目录。



亲测了两种方法,供大家参考:

法1:

1、拷贝st_shapelib.dll到D:\Oracle\product\12.1.0\dbhome_1\BIN目录下

2、修改D:\Oracle\product\12.1.0\dbhome_1\hs\admin目录下的extproc.ora文件,在最后一行加上图上红色框框部分的内容:

SET EXTPROC_DLLS=ONLY:D:\\Oracle\\product\12.1.0\\dbhome_1\\BIN\\st_shapelib.dll

特别说明:路径要用双斜杠!!!


3、重启Oracle的监听服务。

法2:

1、拷贝st_shapelib.dll到D:\Oracle\product\12.1.0\dbhome_1\BIN目录下

2、修改D:\Oracle\product\12.1.0\dbhome_1\NETWORK\ADMIN目录下的listener.ora文件:在EXTPROC_DLLS中追加st_shapelib.dll的路径(注意与其他dll的分隔符 分号;



3、重启Oracle的监听服务。

===============================================================================

以上两种方法任选,完成上述操作后,继续下一步操作:

4、打开PLSQ;执行SQL语句:

create or replace library ST_SHAPELIB as 'D:\Oracle\product\12.1.0\dbhome_1\BIN\st_shapelib.dll';
alter package sde.st_geometry_shapelib_pkg compile reuse settings;

执行完前后都可以通过SQL语句查看一下键值的内容:select * from user_libraries;


5、验证:

select sde.st_astext(shape) from 表名 where 条件;

例如:select sde.st_astext(shape) from RES_BUD_PY_G_CLIP where objectid < 3;


OK,若你也看到上图类似内容,恭喜你,大功告成!

相关函数列表可参考:http://desktop.arcgis.com/zh-cn/arcmap/latest/manage-data/using-sql-with-gdbs/a-quick-tour-of-sql-functions-used-with-st-geometry.htm

写在后面的话:st_geometry.dll文件不一定要拷贝到oracle服务端安装目录的bin目录下,只要保证st_geometry.dll的存放目录没有空格,没有括号等特殊字符即可。但是为了方便管理和记录,建议还是放在%ORACLE_HOME%/bin目录下。

猜你喜欢

转载自blog.csdn.net/kone0611/article/details/80436998