【SDE】在ArcMap10.8.1、Oracle12102环境下配置SDE空间数据库,并激活st_geometry

环境准备

客户端

  1. Windows 10
  2. ArcCatalog 10.8.1
  3. 精简版Oracle Client 12 - 32 bit
    安装包名称:instantclient-basic-nt-12.1.0.2.0.zip
  4. Navicat Premium 15

服务端

  1. Windows Server 2019 Standard(桌面体验版)
  2. Oracle 12.1.0.2
    安装包名称:winx64_12102_database_1of2.zip、winx64_12102_database_2of2.zip
  3. MS VC++ 2015-2022 Redistributable(x64)
    安装包名称: VC_redist.x64.exe

版本对应

以下表示ArcGIS Desktop各组件支持连接的Oracle服务端数据库,连接Oracle数据库时,须在Desktop相同计算机上安装对应Oracle版本的32位的客户端(本文以精简版Oracle Client 12 - 32 bit为例)

ArcGIS版本 vc++ 版本 Oracle 10g Oracle 11g Oracle 12c Oracle 18c Oracle 19c
ArcGIS 10.2.x R2(x64)10.2.0.3 R1(x64)11.1.0.7
R2(x64)11.2.0.1
R2(x64)11.2.0.3
R1(x64)12.1.0.1
ArcGIS 10.3.x R2(x64)10.2.0.3 R2(x64)11.2.0.3 R1(x64)12.1.0.1
ArcGIS 10.4.x R2(x64)11.2.0.4 R1(x64)12.1.0.2
ArcGIS 10.5.x R2(x64)11.2.0.4 R1(x64)12.1.0.2
R2(x64)12.2.0.1*
ArcGIS 10.6.1+ 2017 R2(x64)11.2.0.4 R1(x64)12.1.0.2
R2(x64)12.2.0.1
(x64)18.3.0.0
(x64)18.4.0.0
(x64)19.3.0.0
ArcGIS 10.7.x 2017 R2(x64)11.2.0.4 R1(x64)12.1.0.2
R2(x64)12.2.0.1
(x64)18.3.0.0
(x64)18.4.0.0
(x64)19.3.0.0
ArcGIS 10.8.x 2015、2017、2019 R2(x64)11.2.0.4 R1(x64)12.1.0.2
R2(x64)12.2.0.1
(x64)18.3.0.0
(x64)18.4.0.0
(x64)19.3.0.0

参考资料
https://resources.arcgis.com/zh-cn/help/system-requirements/10.2/index.html#//01510000006s000000
https://desktop.arcgis.com/zh-cn/arcmap/10.3/get-started/system-requirements/database-requirements-oracle.htm
https://desktop.arcgis.com/zh-cn/system-requirements/10.4/database-requirements-oracle.htm
https://desktop.arcgis.com/zh-cn/system-requirements/10.5/database-requirements-oracle.htm
https://desktop.arcgis.com/zh-cn/system-requirements/10.6/database-requirements-oracle.htm
https://desktop.arcgis.com/zh-cn/system-requirements/10.7/database-requirements-oracle.htm
https://desktop.arcgis.com/zh-cn/system-requirements/10.8/database-requirements-oracle.htm


安装及配置

系统安装

客户端

1. ArcGIS 10.8.1

一路下一步就好,详见其它链接

安装完成后,在软件目录下附带各类数据库软件、各系统版本的st_geometry依赖文件,该文件在创建sde、调用空间函数均发挥作用

2. 精简版Oracle Client 12 - 32 bit

  • 解压到文件夹
  • 将文件夹添加到 系统环境变量 Path
  • 在文件夹中新建 tnsnames.ora 文件,键入以下信息
ORCL =
  (DESCRIPTION = 
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 服务端IP)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ORCL)
    )
  )

3. Navicat Premium 15

服务端 Oracle

  • 参照 https://blog.csdn.net/weixin_45775343/article/details/103422775 服务器安装步骤
  • 安装用户选用 本地账户 ,使用Administrator用户
  • 系统类 选用 服务端
  • 安装类型 选用 高级安装
  • 数据库标识符 取消勾选 创建为容器数据库,勾选后创建用户需以 c## 为用户名前缀,与sde创建冲突(此为12c版本后新特性)

如需要在cdb中创建sde,在创建企业级地理数据库工具的实例一栏,需要填写IP/pdb的实例名

  • 双击 VC_redist.x64.exe 安装 vc++ 运行环境

空间数据库搭建

1.在Navicat中测试连接

启动Navicat,使用sys用户连接Oracle数据,测试连接是否生效,注意在高级标签页中将角色设置为SYSDBA
image

2.在ArcCatalog中测试sys用户连接

  1. 需确保已安装 32bit Oracle Client
  2. 启动ArcCatalog
  3. 在 数据库链接 中,点击 添加数据库连接
  4. 如下所示,选用Oracle,输入数据ip/实例名,输入sys账号密码
    image
  5. 连接成功后出现,ip.sde 选项,并可展开查看数据表
  6. 如出现 Ora-12504 错误,一般是没配置 tnsnames.ora 或配置错误,详见上文

如需要在cdb中创建sde,在创建企业级地理数据库工具的实例一栏,需要填写IP/pdb的实例名

3. 将st_geometry拓展文件拷入Oracle目录

  1. 随ArcGIS安装,在 <Desktop安装目录>\DatabaseSupport\Oracle\Windows64 文件夹下有win64版Oracle的st_geometry文件,名为 st_shapelib.dll
  2. st_shapelib.dll 拷入Oracle服务端bim目录下,默认安装时路径为 C:\app\Oracle12\product\12.1.0\dbhome_1\BIN

4. 创建sde

  1. 启动ArcCalalog,在 工具箱>系统工具箱>Data Management Tools.tbx>地理数据库管理>创建企业级地理数据库
  2. 按如下配置参数
    image
  3. 此步骤出现ORA-65096错误,一般是容器数据库类型导致,应在安装时取消相关选项,或参照其它文章重新配置

5. 以sde角色连接数据库

  1. 同步骤 2.在ArcCatalog中测试sys用户连接
  2. 用户及密码更改为新创建的 sde
  3. 连接完成后,出现 ip.sde, 展开并右键,出现可新建要素等空间数据类型选项,代表创建成功
    image

6. 激活st_geometry空间函数库

参照 https://blog.csdn.net/weixin_42876784/article/details/114832026
使用st_geometry环境需vc++环境

  1. 确保完成 3. 将st_geometry拓展文件拷入Oracle目录
  2. 参照 1.在Navicat中测试连接 使用Navicat连接Oracle数据库,注意角色为sde
  3. 点击新建查询,输入以下命令
create or replace library ST_SHAPELIB  as 'C:\app\Oracle12\product\12.1.0\dbhome_1\BIN\st_shapelib.dll';

alter package sde.st_geometry_shapelib_pkg compile reuse settings;
  1. 在Oracle服务端中打开 C:\app\Oracle12\product\12.1.0\dbhome_1\NETWORK\ADMIN\listener.ora 文件
  2. 修改dll配置为ANY,如 (ENVS = "EXTPROC_DLLS=ANY")
  3. 保存listener.ora并在系统服务中重启Oracle相关服务
  4. 在Navicat中执行以下查询语句,测试st_geometry拓展是否已配置
select * from user_libraries where library_name = 'ST_SHAPELIB';
  1. 输出结果包含st_shapelib.dll,代表配置成功
    image

7. 测试st_geometry函数

  1. 参照 1.在Navicat中测试连接 使用Navicat连接Oracle数据库,注意角色为sde
  2. 点击新建查询,输入以下命令
SELECT sde.st_geometry('point (110.06544906 34.52209921)', 4326)  FROM DUAL;
  1. 无报错误,并输出结果,代表函数成功被识别,并可执行
    image

至此,搭建及配置已完成

posted @ 2022-05-06 10:43  wongJzzz  阅读(762)  评论(3编辑  收藏  举报