在 ArcGIS10.5.1连接到Oracle 12c(SDE直连ORACLE)中,虽然建立了连接,但是有一段错误信息:
ST_Geometry 形状库路径可能无效,或者未在 Oracle 实例中正确配置 EXTPROC。
[ (Unable to determine current version of ST_SHAPELIB.
Please check the ST_Geometry shape library path on the Oracle server,
which is set to "c:\progra~2\arcgis\desktop10.5\DatabaseSupport\Oracle\Windows64\st_shapelib.dll".
Refer to the ArcGIS help topics for more details.
)]
如何设置ST_Geometry,请参考官网文件
下面详细讲一下如何配置ST_Geometry:
1.在arcgis sever所安装服务器中,在C:\Program Files (x86)\ArcGIS\Desktop10.5\DatabaseSupport\Oracle\Windows64这个目录下,找到st_shapelib.dll,拷贝出来。
2.把st_shapelib.dll文件拷贝到数据库服务端: E:\app\aganliang\product\12.1.0\dbhome_1\BIN 目录下
3.找到数据库服务端的EXTPROC.ora文件:E:\app\aganliang\product\12.1.0\dbhome_1\hs\admin 在这个路径下。打开这个文件,把最后一行修改为:SET EXTPROC_DLLS=ANY
4.使用SDE用户,通过PLSQL登录oracle,
5.安装相关组件
在 Windows 服务器上部署 ST_Geometry 库时,需要使用 Microsoft Visual C++ 2017 Redistributable Package (x64)。如果 Oracle 服务器上没有 Microsoft Visual C++ 2017 SP1 Redistributable Package (x64),可从 Microsoft 网站下载后进行安装。
(注意,每个版本的st_shapelib.dll需要的Microsoft Visual C++不同,此处是ArcGIS 10.6)。
6.测试是否成功:用SDE用户登录,执行查询SQL语句
select st_astext(shape) from CS_CMT_PT t
如果配置成功,将返回下图所示:
如果配置不成功,那么出现这个错误: