环境
SDE版本:10./10.2/10.2.1/10.2.2/10.3/10.4/10.5
Oracle版本:11g R2 11.2.0.1
Windows版本:Windows Server 2008 R2
配置过程
- 将st_shapelib.dll文件拷贝到oracle安装目录的BIN目录下,确保oracle账号对st_shapelib.dll文件具有读写权限;
- 配置listener.ora文件和tnsnames.ora文件:
listener.ora文件配置内容:
注意:如果再ENVS一行中已经有了oraclr11.dll的文件,如下:
(ENVS = "EXTPROC_DLLS=ONLY:c:\app \product\11.2.0\dbhome_1\bin\oraclr11.dll")
那么就修改成为 :
(ENVS = "EXTPROC_DLLS=ONLY: D:\app\product\11.2.0\dbhome_1\BIN\st_shapelib.dll ;D:\app\product\11.2.0\dbhome_1\bin\oraclr11.dll")
也就是把st_shapelib.dll的所在路径添加到Extproc的环境变量中,注意这个路径要和user_libraries表中的路径保持一致。
确认tnsnames.ora文件配置内容:
说明:其中EXTPROC_CONNECTION_DATA可以是其他的名称,主要是KEY=EXTPROC要和listener.ora文件中的一致。
备注:除了配置listener.ora文件和tnsnames.ora文件之外,还可以通过配置extproc.ora 文件的方式(extproc.ora 文件位于 ORACLE_HOME\hs\admin 目录中
),具体如下:
SET EXTPROC_DLLS=ONLY: D:\app\product\11.2.0\dbhome_1\BIN\st_shapelib.dll
- 检查user_libraries表,是否ST_SHAPELIB的记录存在:
select * from user_libraries;
- 在user_libraries表中创建或更新ST_SHAPELIB对应的外部函数库文件所在的路径:
create or replace library ST_SHAPELIB as 'c:\app\product\11.2.0\dbhome_1\BIN\st_shapelib.dll';
- 编译st_geometry_shapelib_pkg包:
alter package sde.st_geometry_shapelib_pkg compile reuse settings;
- 配置完成后,重启监听器,并执行常用测试函数: