前言:
本机正常安装了 oracle11g 和 ArcSDE10, 想要查询某个空间图层表的shape字段值,所以写了如下sql语句在PL/SQL里执行,
select sde.st_astext(shape) from DLWG_SQ,
但是一直提示如下错误:
ORA-28595: Extproc 代理: DLL 路径无效
ORA-06512: 在 "SDE.ST_GEOMETRY_SHAPELIB_PKG", line 70
ORA-06512: 在 "SDE.ST_GEOMETRY_OPERATORS", line 68
百度了一番也没找到方法,后来还是通过 google 查找到了线索,通过调试一番终于解决,在此给大家说明一下解决的思路。
我本机的 oracle11g 安装目录为 E:\oracle11g。
1、打开 E:\oracle11g\product\11.2.0\dbhome_1\NETWORK\ADMIN 目录下的 listener.ora 文件,
发现之前写的是 :
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = E:\oracle11g\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:E:\oracle11g\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
)
把它修改为:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = E:\oracle11g\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ANY")
)
)
2、打开 E:\oracle11g\product\11.2.0\dbhome_1\hs\admin 目录下的 extproc.ora文件,
最后一行原来写的 是 SET EXTPROC_DLLS= , 把他修改为 SET EXTPROC_DLLS=ANY
3、重启 OracleOraDb11g_home1TNSListener服务和 OracleServiceORCL服务。
4、重启 PL/SQL ,再次运行 select sde.st_astext(shape) from DLWG_SQ, 这次终于不再提示错误了,正常查询到结果。