在本地 Oracle 数据库中安装 ST_Raster 类型

如果 ArcSDE 与 Oracle 安装在同一台服务器上,则可按如下说明在数据库中创建 ST_Raster 类型并配置其访问权限。

步骤:
  1. 安装 ArcSDE for Oracle。
  2. 更新 listener.ora 文件以在 EXTPROC_DLLS 中包含路径。

    有关说明,请参阅配置 Oracle 侦听器以使用 SQL

  3. 运行 sdesetup 命令的 install_st_raster 操作。
    sdesetup -o install_st_raster -d ORACLE11G
    -s oserver -u sde
    
    Please enter ArcSDE DBA password:
    
    Install or update ST_Raster schema objects: Are you sure? (Y/N):
    
  4. 使用 Oracle SQL 编辑器(如 SQL*Plus),以任意用户的身份连接并测试 ST_Raster 类型的安装。

    此查询结果成功时将包括“No data found”(如果地理数据库中尚不存在任何栅格数据)或数据库中栅格列的列表。如果 Oracle 侦听器没有启动或 libst_raster_ora 库无法访问,则返回错误消息。如果未安装 ST_Raster、listener.ora 文件没有使用 libst_raster_ora 库的路径进行更新或 libst_raster_ora 库被复制到错误位置,则无法对该库进行访问。

    在本例中,通过运行 describe 工具来列出数据库中现有的 ST_Raster 和二进制栅格列。这种情况下,此数据库为新地理数据库,因此数据库中尚无栅格列。由于没有返回任何错误消息,因而可确定安装已成功。

    SELECT sde.st_raster_util.describe() 
    FROM dual;
    
    SDE.ST_RASTER_UTIL.DESCRIBE()
    
    No data found.

    在本例中,将同样运行 describe 工具。但在这种情况下,不向 listener.ora ENV 参数添加 libst_raster_ora 库的路径。更正问题并再次运行查询,确保该问题已解决。

    SELECT sde.st_raster_util.describe() 
    FROM dual;
    
    ERROR:
    ORA-28575: unable to open RPC connection to external procedure agent
    ORA-06512: at "SDE.ST_RASTER_UTIL", line 190
    ORA-06512: at "SDE_ST_RASTER_UTIL", line 377
    
  5. 在 DBTUNE 表中创建 ST_RASTER 配置关键字并将 RASTER_STORAGE 参数设置为 ST_RASTER,或者将 DEFAULTS 关键字的 RASTER_STORAGE 参数设置为 ST_RASTER。
    • 如果要使用 ArcGIS 软件将大部分或全部栅格数据创建为 ST_Raster 类型,可将 DEFAULTS 关键字下的 RASTER_STORAGE 参数值设置为 ST_RASTER。
      sdedbtune -o alter -k DEFAULTS -P RASTER_STORAGE
      -v ST_RASTER -i sde:oracle11g -s bigserve -u sde
      
      Update DBTUNE data: Are you sure? (Y/N):
    • 如果仅要创建一些具有 ST_Raster 存储的栅格数据,可以将 ST_RASTER 关键字添加到 DBTUNE 表,并包括设置为 ST_RASTER 的 RASTER_STORAGE 参数和 UI_TEXT 参数。
      sdedbtune -o insert -k ST_RASTER -P RASTER_STORAGE 
      -v ST_RASTER -i sde:oracle11g -s bigserve -u sde
      
      sdedbtune -o insert -k ST_RASTER -P UI_TEXT -v UI_TEXT 
      -i sde:oracle11g -s bigserve -u sde

相关主题


7/10/2012