前面配置PL/SQL直接通过SQL查询SDE空间数据库,网上已有诸多示例,
常见问题如下:
ORA-06520: PL/SQL: 加载外部库时出错 ORA-06522: Unable to load DLL ORA-06512: 在 "SDE.ST_GEOMETRY_SHAPELIB_PKG", line 70 ORA-06512: 在 "SDE.ST_GEOMETRY_OPERATORS", line 68 |
【核心问题就在于未能加载"st_shapelib.dll"】
要点1:Oracle的用户库是否包含了st_shapelib这个库
PL/SQL以SDE用户登录进去,查询SQL:
select * from user_libraries;
如果找不到,或者看到的SDE库的地址不对,那么之下一下SQL:
CREATE OR REPLACE LIBRARY st_shapelib as 'F:Program FilesArcGISArcSDEora11gexeinst_shapelib.dll';
后面地址根据个人实际情况,再次执行前面SQL语句,则会显示正常路径。
要点2:监听和命名配置,这里按照ESRI教程例子来,一般不会出错。
要点3:Oracle环境变量设置,st_shapelib.dll文件拷贝正确
将F:Program FilesArcGISArcSDEora11gexeinst_shapelib.dll 这个文件拷贝到%ORACLE_HOME%/bin目录下,并且要确保系统环境变量Path中有ORACLE_HOME;
要点4:系统权限,根据不同操作系统,有时会需要按“管理员权限”运行,更改兼容运行模式。
测试:
环境:win10-64,arcgis10.5,SDE10.3,PL/SQL,Oracle11G-64
以上针对Windows操作系统,Linux/Unix另议。