首先当然是找到st_shapelib.dll或st_geometry.dll文件,比如我本机的:
C:\soft\ArcGIS\Desktop10.2\DatabaseSupport\Oracle\Windows64
目录下找到st_shapelib.dll文件。
其次,找到Oracle的服务端的安装目录,比如我我本机的:C:\app\Administrator\product\11.2.0\dbhome_1\BIN,找到BIN目录。
亲测了两种方法,供大家参考:
法1:
1、拷贝st_shapelib.dll到C:\app\Administrator\product\11.2.0\dbhome_1\BIN目录下
2、修改C:\app\Administrator\product\11.2.0\dbhome_1\hs\admin目录下的extproc.ora文件,在最后一行加上图上红色框框部分的内容:
SET EXTPROC_DLLS=ANY 或者
SET EXTPROC_DLLS=ONLY:C:\app\Administrator\product\11.2.0\dbhome_1\BIN\st_shapelib.dll
特别说明:路径要用双斜杠!!!
3、重启Oracle的监听服务。
===============================================================================
完成上述操作后,继续下一步操作:
4、打开PLSQ;执行SQL语句:
登录sde用户,执行下列语句:
create or replace library ST_SHAPELIB as 'C:\app\Administrator\product\11.2.0\dbhome_1\BIN\st_shapelib.dll';
alter package sde.st_geometry_shapelib_pkg compile reuse settings;
说明:设置ST_SHAPELIB的路径为st_shapelib.dll为放置在oracle的11.2.0\dbhome_1\BIN下的路径。
执行完前后都可以通过SQL语句查看一下键值的内容:select * from user_libraries;
5、验证:
select sde.st_astext(shape) from 表名 where 条件;
例如:select sde.st_astext(shape) from WG;
OK,若你也看到上图类似内容,恭喜你,大功告成!