帮朋友把一些shp数据导入到oracle中,用到了sde的一些内容,在此整理一下。
使用软件版本:arcgis10.2,Oracle 11g。
直连方法不做赘述,此处说两个问题:
1、arcgis10.2 配置 Oracle11g extproc的方法
Oracle11g 配置 st_shapelib.dll的方法与Oracle10g不同,主要步骤如下,转自arcgis官网
对于 Oracle 11g,Oracle 建议您通过更改 extproc.ora 文件而不是配置监听器来配置 EXTPROC。extproc.ora 文件位于 ORACLE_HOME\hs\admin 目录中。
将 ST_Geometry (st_shapelib) 和/或 ST_Raster 库移动到您的 Oracle 服务器上之后,更改 extproc.ora 文件以指向库的位置。
在 Windows 服务器上,您可添加与以下类似的行:
SET EXTPROC_DLLS=ONLY:C:\\mylibraries\\st_shapelib.dll
SET EXTPROC_DLLS=ONLY:C:\\mylibraries\\libst_raster_ora.dll
如果您使用两个库,可将它们放在一行上:
SET EXTPROC_DLLS=ONLY:C:\\mylibraries\\st_shapelib.dll;C:\\mylibraries\\libst_raster_ora.dll
在这些示例中,库放置在名为 mylibraries 的文件夹中,此文件夹在 Oracle 服务器上创建以存储库。
2、在PL/SQL中使用ST_shapelib函数。
本来以为按照步骤1的方法配置完成后,在PL/SQL中就能使用ST_shaplib里的函数了,但在执行中发生错误。
错误代码为:ORA-28595:Extproc代理:dll路径无效。
在PL/SQL中找到Libraries路径,发现是有ST_SHAPELIB的,然后右击→编辑(如下图),他的路径中有空格,于是,我把st_shapelib.dll文件单独复制出来,放到一个新目录下。
修改为:
再次执行sql语句,能够成功运行。
3.ST_SHAPELIB.dll文件函数。
arcsde提供了多种空间函数操作,具体看arcgis的帮助:
http://resources.arcgis.com/zh-cn/help/main/10.2/index.html#/na/006z0000003n000000/

本文介绍了如何配置ArcGIS 10.2与Oracle 11g的Extproc,特别是解决在PL/SQL中使用ST_shapelib函数时遇到的ORA-28595错误。错误因DLL路径包含空格导致,通过将st_shapelib.dll文件移动到无空格的目录并更新extproc.ora文件得以解决。
1780

被折叠的 条评论
为什么被折叠?



