关于Oracle如何配置st_geometry,可主要分为如下步骤:
1 . 拷贝st_shapelib.dll文件到oracle数据库的安装目录:D:\app\Administrator\product\11.2.0\dbhome_1\BIN,其中st_shapelib.dll可来自两个文件夹:
(1) 如果安装了arcgis desktop,可从 D:\Program Files (x86)\ArcGIS\Desktop10.2\DatabaseSupport\Oracle\Windows64 路径下寻找
(2) 如果安装了ArcSDE,可从 D:\Program Files\ArcGIS\ArcSDE\ora11gexe\bin 路径下寻找
2 . Oracle 12C以下版本:修改Oracle两个文件:extporc.ora(路径为:D:\app\Administrator\product\11.2.0\dbhome_1\hs\admin)和listener.ora(路径为:D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN);
Oracle 12C及以上版本:只需修改extporc.ora(路径为:D:\app\Administrator\product\11.2.0\dbhome_1\hs\admin)。
(1) extporc.ora 修改内容:底部设置SET EXTPROC_DLLS = ANY;
(2) listener.ora 修改内容:确保红色框内的内容如下图所示即可;
3 . 重启oracle数据库的服务监听;
4 . 使用sde账户登录数据库,依次执行以下语句即可:
CREATE OR REPLACE LIBRARY ST_SHAPELIB AS 'D:\app\Administrator\product\11.2.0\dbhome_1\BIN\st_shapelib.dll';
ALTER PACKAGE SDE.ST_GEOMETRY_SHAPELIB_PKG COMPILE REUSE SETTINGS;
5 . 在执行完上述两个语句之后,即可验证是否配置成功:
SELECT SDE.ST_ASTEXT(SDE.ST_POINT(1024,4513, 2435)) FROM DUAL;
成功返回结果,即配置成功!
以上内容也可以参考ESRI官方文档:在 Oracle 中配置 extproc 以访问 ST_Geometry—ArcMap | 文档
注意:Windows平台确保安装了Microsoft Visual C++ Redistributable运行库,否则会报错ORA-06522 Unable to load DLL