配置Oracle访问SQL地理数据库

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访问怎么办?

配置Oracle访问SQL地理数据库

ST_Geometry访问空间数据

升级数据库为地理

升级地理数库注意两个问题:一是必须要建立SDE用户;二是授权文件不好找,可以用以前arcgis10.0时的注册机生成。用下面的工具就可以直接升级!

配置Oracle访问SQL地理数据库

升级后存储的格式如下:

配置Oracle访问SQL地理数据库

配置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

上一篇:Android属性动画源代码解析(超详细)


下一篇:阿里大鱼ASP调用示例