zoukankan      html  css  js  c++  java
  • ArcGIS 10.4 创建 Oracle 12c R1(12.1.0.2) 地理数据库

    通过ArcGIS帮助文档得知ArcGIS 10.4支持的Oracle数据库有 Oracle 11g R2 11.2.0.4 和 Oracle 12c R1 12.1.0.2

    1 安装 Oracle 12c R1

    在安装了ArcGIS 10.4 的电脑上,安装Oracle 12c R1的数据库,运行setup.exe

    出现下面安装加载界面

    不勾选 我希望通过My Oracle Support 接收安全更新

    点击消息窗体的 ,并点击 下一步

    选择 创建和配置数据库,并点击 下一步

    笔者是个人使用数据库,通常装在笔记本电脑/一般台式机上,所以选择 桌面类,并点击 下一步

    根据Oracle的建议,选择 创建新Windows用户,并设置 用户名 为:oracle,为方便记忆密码,设置 口令 为:oracle,然后点击 下一步

    设置字符集为utf-8,管理口令 为:orcl,不勾选 创建为容器数据库,然后单击 下一步
    (PS: 在Oracle Database 12c中,可插入数据库(Pluggable Database)为云计算而生,且为收费项目,Pluggable Database 其体系结构的核心是:由一个容器数据库(CDB)和多个可插入式数据库(PDB)构成,PDB包含独立的系统表空间和SYSAUX表空间等,但是所有PDB共享CDB的控制文件、日志文件和UNDO表空间。各个PDB之间互访需要通过DB Link进行,就仿佛是多个数据库一样。)

    若勾选 创建为容器数据库,ArcMap 建立Oracle的企业地理数据库会出现下面问题:

    Executing: CreateEnterpriseGeodatabase Oracle 192.168.220.203/orcl # DATABASE_AUTH sys ***** SDE_SCHEMA sde ***** sde
    C:\Users\Administrator\Desktop\ArcGISforServerAdvancedEnterprise_server.ecp
    Start Time: Wed Feb 12 09:17:20 2014
    User has privileges required to create database objects.
    Tablespace created.
    Error creating geodatabase admin user. [ERROR: Failed to create new Oracle user sde  (-51).
    Error: Underlying DBMS error (-51).
    Extended error code: (65096)
    ORA-65096: invalid common user or role name]
    Failed to execute (CreateEnterpriseGeodatabase).
    Failed at Wed Feb 12 09:17:32 2014 (Elapsed Time: 12.37 seconds)
    

    上述问题可在 https://blog.csdn.net/linghe301/article/details/19110539 找到解决方法,本文不做详细介绍

    忽略上述添加的 口令 不符合Oracle建议的标准,点击

    等待 先决条件检查 完成

    检查安装程序设置是否有问题,然后点击 安装

    进入程序安装过程,等待安装完成

    安装过程中,当数据库orcl建立成功后,会弹出窗体,单击 口令管理

    默认情况下,只解锁了sys和system用户,为便于记忆,设置这两个用户访问orcl数据库的口令均为:oracle

    Oracle Database 安装结束,点击 关闭

    2 ArcMap 创建 Oracle 12c R1 地理数据库

    安装Oracle 12c R1的客户端。电脑安装了ArcMap,需要安装32位客户端,安装ArcGIS for Server,需要安装64位客户端,同时安装ArcMap和ArcGIS for Server,需要同时安装32位和64位客户端

    设置客户端环境变量。如果 ArcMap 和 ArcGIS for Server 安装在同一台 Windows 计算机上,则将 PATH 变量设置为先读取64位客户端,后读取32位客户端
    例如,如果 32 位 Oracle Instant Client 安装在 c:\Program Files (x86)\Oracle 下,64 位 Oracle Instant Client 安装在 c:\Program Files\Oracle 下,
    则将以下内容添加到 Window 中 PATH 变量值的开始位置,C:\Program Files\Oracle;C:\Program Files (x86)\Oracle;

    在arcmap 中找到 创建企业级地理数据库 工具

    设置参数如下,其中实例为安装Oracle时建立的全局数据库orcl

    数据库建立成功,但是提示没有将ST_Geometry 正确配置到EXTPROC

    C:\Program Files (x86)\ArcGIS\Desktop10.4\DatabaseSupport\Oracle\Windows64\路径下的 st_shapelib.dll
    拷贝到Oracle的安装路径下的bin文件夹中,"C:\app\oracle\product\12.1.0\dbhome_1\BIN"

    打开 C:\app\oracle\product\12.1.0\dbhome_1\hs\admin 中的 extproc.ora 文件。
    修改最后一行的内容为:

    SET EXTPROC_DLLS=ONLY:C:\\app\\oracle\\product\\12.1.0\\dbhome_1\\BIN\\st_shapelib.dll
    

    打开 C:\app\oracle\product\12.1.0\dbhome_1\NETWORK\ADMIN 中的 listener.ora 文件,修改原文件内容
    (建议将原文件复制重命名为listener0.ora

    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
           (SID_NAME = CLRExtProc)
           (ORACLE_HOME = C:\app\oracle\product\12.1.0\dbhome_1)
           (PROGRAM = extproc)
           (ENVS = "EXTPROC_DLLS=ONLY:C:\app\oracle\product\12.1.0\dbhome_1\bin\oraclr12.dll")
        )
        # ---新添加内容---
        (SID_DESC =  
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = C:\app\oracle\product\12.1.0\dbhome_1)
          (PROGRAM = extproc)
          (ENVS = "EXTPROC_DLLS=ONLY:C:\app\oracle\product\12.1.0\dbhome_1\BIN\st_shapelib.dll")
        )
        # ---------------
      )
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC01)) # 新添加内容
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
          (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        )
      )
    

    打开 C:\app\oracle\product\12.1.0\dbhome_1\NETWORK\ADMIN 中的 tnsnames.ora文件,修改原文件内容
    (建议将原文件复制重命名为tnsnames0.ora

    ORACLR_CONNECTION_DATA =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
        )
        (CONNECT_DATA =
          (SID = CLRExtProc)
          (PRESENTATION = RO)
        )
      )
    # ----新添加内容----
    EXTPROC_CONNECTION_DATA=
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC01))
        )
        (CONNECT_DATA =
          (SID = PLSExtProc)
          (PRESENTATION = RO)
        )
      )
    # --------------
    ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl)
        )
      )
    

    在PL/SQL Developer中,以sde用户登录,并执行下面的SQL代码:

    select * from user_libraries;
    create or replace library st_shapelib as 'C:\app\oracle\product\12.1.0\dbhome_1\BIN\st_shapelib.dll';
    --alter package sde.st_geometry_shapelib_pkg compile reuse settings;
    select sde.ST_AsText(SDE.ST_Geometry('POINT (10 10)', 0)) from dual;
    
  • 相关阅读:
    Junit单元测试
    团队作业1——团队展示&教辅宝
    结对编程加强版四则运算器
    APP分析之海豚睡眠
    作业1--四则运算
    软件工程-pair work[附加题]
    现代程序设计 homework-02
    《软件工程》individual project开发小记(一)
    现代程序设计 homework-01
    《现代程序设计》9.9日课后总结
  • 原文地址:https://www.cnblogs.com/lqqgis/p/12642291.html
Copyright © 2011-2022 走看看