ArcGIS Desktop

  • 文档
  • 支持

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS for Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

配置 Oracle extproc 以使用 SQL 访问地理数据库

在 Oracle 中,ST_Geometry 和 ST_Raster 的 SQL 函数使用通过 Oracle 的外部过程代理(即 extproc)访问的共享库。Oracle 必须能够访问物理库文件,您才能执行以下任意操作:

  • 从 SQL 客户端执行 ST_Geometry 或 ST_Raster SQL 函数。
  • 访问 GDB_ITEMS_VW 和 GDB_ITEMRELATIONSHIPS_VW 地理数据库系统视图中的 ArcSDE XML 列。
  • 在对 ST_Geometry 列执行 SQL 函数的 ArcMap 或 ArcGIS Pro 中定义查询图层。
  • 从 ArcMap 或 ArcGIS Pro 识别数据库视图中的要素。
  • 将包含 ST_Raster 列的表注册为版本。
  • 使用 ArcGIS 客户端删除包括 ST_Raster 列的行。

您需要配置 Oracle 外部过程框架调用库才能执行这些任务。

在大多数情况下,您会安装 ST_Raster 类型以便通过 SQL 对其进行访问。因此,配置 Oracle extproc 以使用 ST_Raster 的说明将包含在 ST_Raster 安装主题中。本主题重点介绍配置 ST_Geometry 的 extproc 的过程。

提示:

ST_Geometry 和 ST_Raster 库可随 ArcGIS Server 与 ArcMap 客户端一起安装,也可从 My Esri 进行下载。如果您已在 Oracle 计算机上安装了 ArcGIS Server 或 ArcMap,则可将您的 extproc.ora 文件配置为指向以下位置之一,并且您可以跳过以下列出的两个准备步骤。

  • Windows 上的 ArcGIS Server:<ArcGIS Server installation directory>\ArcGIS\Server\DatabaseSupport\Oracle\Windows64
  • Linux 上的 ArcGIS Server:<ArcGIS Server installation directory>/arcgis/server/DatabaseSupport/oracle/linux64
  • ArcMap:<ArcMap installation directory>\ArcGIS\Desktop<version>\DatabaseSupport\Oracle\Windows64

如果指向 ArcMap 或 ArcGIS Server 位置,则在安装新版 ArcMap 或 ArcGIS Server 时将自动获得更新的库。如果您将这些库放置在其他位置,则需要手动对其更新才能获得新版 ArcGIS 库中所包含的修复和改进程序。

配置 Oracle extproc 之前,请完成以下步骤:

  1. 如果您的 Oracle 实例无法访问上述 ArcGIS Server 或 ArcMap 安装位置,请下载这些库或将其从 ArcGIS 客户端计算机复制到 Oracle 计算机的目录中。确保复制适合 Oracle 操作系统的库。

    注:

    在 Windows 服务器上部署 ST_Geometry 库时,需要使用 Microsoft Visual C++ 2013 Redistributable Package (x64)。如果 Oracle 服务器上没有 Microsoft Visual C++ 2013 SP1 Redistributable Package (x64),可从 Microsoft 网站下载后进行安装。

  2. 创建空间类型、创建企业级地理数据库和启用企业级地理数据库地理处理工具可为 ST_SHAPELIB 库设置默认路径。以 sde 用户身份从 SQL 客户端连接至 Oracle 实例,然后执行以下 SQL 以查看当前为 ST_SHAPELIB 库设置的路径:

    SELECT file_spec
     FROM user_libraries
     WHERE library_name = 'ST_SHAPELIB';
    

    如果此操作返回的路径与 ST_Geometry 库文件位置不匹配,则需要在配置 extproc 后重新创建该库。

将 Oracle extproc.ora 配置为指向 ST_Geometry 库文件位置。

  1. 在 Oracle 服务器上创建 extproc.ora 文件的备份副本。
  2. 打开 extproc.ora 文件并将其改为指向 st_shapelib.dll (Windows) 或 libst_shapelib.so(Linux 或 UNIX)库的位置。

    在本例中,未在 Oracle Windows 服务器上安装 ArcGIS 客户端,因此已将 st_shapelib.dll 复制到 Oracle 计算机中名为 mylibraries 的目录下。已将以下行添加到 extrproc.ora 中以指向该目录下的 ST_Geometry 库:

    SET EXTPROC_DLLS=ONLY:C:\\mylibraries\\st_shapelib.dll

    如果您正在使用 ST_Geometry 和 ST_Raster 两个库,可将二者的条目放在同一行上:

    SET EXTPROC_DLLS=ONLY:C:\\mylibraries\\st_shapelib.dll;C:\\mylibraries\\libst_raster_ora.dll

    本示例中,已将以下行添加到 Linux 或 UNIX 服务器上,以指向用户的 esrilibs 目录中的 ST_Geometry 库,此目录在 Oracle 服务器上创建以存储库:

    SET EXTPROC_DLLS=ONLY:/user/esrilibs/libst_shapelib.so

    如果您正在使用 ST_Geometry 和 ST_Raster 两个库,可将二者的条目放在同一行上:

    SET EXTPROC_DLLS=ONLY:/user/esrilibs/libst_shapelib.so:/user/esrilibs/libst_raster_ora.so

  3. 保存并关闭 extproc.ora 文件。
  4. 如果您将 ST_Geometry 库文件的默认位置改为其他位置或未对其设置任何位置,请在 Oracle 数据库中创建或重新创建 ST_SHAPELIB 库。

    在本例中,将 ST_SHAPELIB 库设置为 Oracle Windows 服务器上用于放置 st_shapelib.dll 文件的 mylibraries 目录。

    CREATE or REPLACE LIBRARY ST_SHAPELIB
     AS 'C:\mylibraries\st_shapelib.dll';
    

  5. 如果您已重新创建该库,请重新编译 sde.st_geometry_shapelib_pkg 包。

    ALTER PACKAGE sde.st_geometry_shapelib_pkg COMPILE
     REUSE SETTINGS;
    

  6. 需要访问库(包括 web 服务)的所有客户端必须重新连接到数据库。

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS 平台

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • Esri 博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2018 Esri. | 隐私政策 | 法律声明