【SDE】ArcGIS SDE空间数据 st_geometry 执行函数遇到 ORA-06520 加载外部库时出错,ORA-06522 Unable to load DLL
适用 Windows 版本 Oracle,Linux 参照排除
前置条件
- 完成安装Oracle
- 使用ArcGIS工具“创建企业级地理数据库”完成sde的创建
- 完成“配置extproc 以访问 ST_Geometry”
问题详情
登陆sde用户,执行st_geometry函数出现
ORA-06520: PL/SQL:加载外部库时出错
ORA-06522:Unable to load DLL
ORA-06512:在 “SDE.ST_GEOMETRY_SHAPELIB_PKG”,line 12
ORA-06512:在 “SDE.ST_GEOMETRY”, line 55
解决思路
extproc 未正确配置
- 检查
\product\12.1.0\dbhome_1\NETWORK\ADMIN\listener.ora 文件
如有ENVS配置项目,需要更改为(ENVS = "EXTPROC_DLLS=ANY")
- 检查
\product\12.1.0\dbhome_1\hs\admin\extproc.ora 文件, 文件末尾更改为 SET EXTPROC_DLLS=ANY
vc++ 环境未正确安装
网上绝大部分解决方案仅检查extproc,如已正确配置,问题仍然未解决,需检查Oracle环境
- st_geometry函数的执行需要vc++环境
- Oracle版本需要与vc++版本对应
- 64bit的Oracle安装x64的vc++
- 32bit的Oracle安装x86的vc++
- 具体st_geometry与对应vc++ 参照ArcGIS官方说明
- windows环境一般选用 ms vc++ 2015-2022 即可,下载地址 https://docs.microsoft.com/en-US/cpp/windows/latest-supported-vc-redist?view=msvc-170