Oracle访问空间数据
ArcSDE是ArcGIS的空间数据引擎,它是在关系数据库管理系统(RDBMS)中存储和管理多用户空间数据库的通路。以前连接方式有两种,服务连接与直接连接(简称"直连"),两种在不同ArcGIS版本中用软件与代码连接方式博客中也总结了一些;但现在,没有了ArcSDE服务器了,即没有了服务连接,只有直连。
在ArcGIS中通过SDE存储空间数据到Oracle中有多种存储方式,分别有
(1)二进制Long Raw
(2)ESRI的ST_Geometry
(3)基于Oracle Spatial的SDO_Geometry
只要安装了ArcGIS Desktop和相应的关系型数据库,如oracle即可进行从GIS端访问和管理空间数据与oracle普通数据。然而,并存储空间数据库的方式是SDO_GEOMETRY,可以使用Oracle的SDO_Geometry管理数据,但现在要用ESRI的ST_Geometry访问怎么办?
ST_Geometry访问空间数据
升级数据库为地理
升级地理数库注意两个问题:一是必须要建立SDE用户;二是授权文件不好找,可以用以前arcgis10.0时的注册机生成。用下面的工具就可以直接升级!
升级后存储的格式如下:
配置oracle
要想使用ST_Geometry相应的函数和功能,还得配置我们的库,主要步骤是:
(1)准备好dll库,st_shapelib.dll和libst_raster_ora.dll(后者是访问栅格相关函数用的,按需配置),它们的路径在:
ArcGIS Server:……\ArcGIS\Server\DatabaseSupport\Oracle\Windows64
ArcMap:……\ArcGIS\Desktop<version>\DatabaseSupport\Oracle\Windows64
(2)修改oracle的extproc.ora 文件
SET EXTPROC_DLLS=ONLY:C:\\mylibraries\\st_shapelib.dll(这是的路径为你dll的路径)
如果是两个有分号隔开
SET EXTPROC_DLLS=ONLY:C:\\mylibraries\\st_shapelib.dll;C:\\mylibraries\\libst_raster_ora.dll
(3)SQL修改库的路径
CREATE or REPLACE LIBRARY ST_SHAPELIB AS 'C:\mylibraries\st_shapelib.dll';
(4)重新编译 sde.st_geometry_shapelib_pkg 包
ALTER PACKAGE sde.st_geometry_shapelib_pkg COMPILE REUSE SETTINGS;
官方参考链接:http://desktop.arcgis.com/zh-cn/arcmap/10.4/manage-data/gdbs-in-oracle/configure-oracle-extproc.htm