ARCGIS SDE空間化處理

来源:http://www.cnblogs.com/ttsofts/archive/2016/08/05/5740868.html
-Advertisement-
Play Games

在 Oracle 中,ST_Geometry 和 ST_Raster 的 SQL 函數使用通過 Oracle 的外部過程代理(即 extproc)訪問的共用庫。要將 SQL 和 ST_Geometry 或 ST_Raster 配合使用或訪問 GDB_ITEMS_VW 和 GDB_ITEMRELATI ...


在 Oracle 中,ST_Geometry 和 ST_Raster 的 SQL 函數使用通過 Oracle 的外部過程代理(即 extproc)訪問的共用庫。要將 SQL 和 ST_Geometry 或 ST_Raster 配合使用或訪問 GDB_ITEMS_VW 和 GDB_ITEMRELATIONSHIPS_VW 視圖中的 ArcSDE XML 列,Oracle 必須能夠訪問這些庫。因此,這些庫必須存在於 Oracle 伺服器上,並且必須通過 Oracle 的外部過程框架調用它們。

在 ArcGIS 中,不設置 Oracle 監聽器也可以使用 ST_Geometry 和 ST_Raster。但是,您將不會擁有 ArcGIS 客戶端的全部功能,也不會擁有 SQL 客戶端的任何功能(如 SQL*Plus)。例如,如果未配置 Oracle 監聽器,則無法對 ArcMap 的查詢圖層中的 ST_Geometry 列或包含 ST_Raster 列的版本化表使用 SQL 函數,無法刪除包括 ST_Raster 列的行,也無法從 SQL 客戶端執行 SQL 函數。另外,如果您不配置 Oracle 監聽器,則無法將使用 ST_Geometry 類型作為要素服務的數據發佈到空間數據伺服器。

ST_Raster 安裝為可選操作。有關說明,請參閱在 Oracle 中安裝 ST_Raster 類型。

 

註:

如果您的 Oracle 資料庫安裝在 Windows 伺服器上,但您未安裝 ArcSDE 應用程式伺服器,則您可能需要安裝 Microsoft Visual C++ 2008 SP1 Redistributable Package (x64)。如果 Oracle 伺服器上沒有 Microsoft Visual C++ 2008 SP1 Redistributable Package (x64),則可從 Microsoft 網站下載,然後進行安裝。

如果您使用的是 Oracle 11g,請編輯 extproc.ora 文件以通過 Oracle 的外部過程框架來調用函數。如果您使用的是 Oracle 10g,請配置 Oracle 監聽器。

 

 

 

首先創建ST_SHAPELIB library


 

執行sql查詢user_libraries
select * from user_libraries;


創建ST_SHAPELIB library create or replace library ST_SHAPELIB as 'C:\arcgisdll\st_shapelib.dll';   設置生效 alter package sde.st_geometry_shapelib_pkg compile reuse settings;  

 

 

Oracle 11g

 

對於 Oracle 11g,Oracle 建議您通過更改 extproc.ora 文件而不是配置監聽器來配置 EXTPROC。extproc.ora 文件位於 ORACLE_HOME\hs\admin 目錄中。

將 ST_Geometry (st_shapelib) 和/或 ST_Raster 庫移動到您的 Oracle 伺服器上之後,更改 extproc.ora 文件以指向庫的位置。

在 Windows 伺服器上,您可添加與以下類似的行:

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

如果您使用兩個庫,可將它們放在一行上:

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

在這些示例中,庫放置在名為 mylibraries 的文件夾中,此文件夾在 Oracle 伺服器上創建以存儲庫。

在 Linux 或 UNIX 伺服器上:

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

如果您使用兩個庫,可將它們放在一行上:

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

在這些示例中,庫放置在用戶的 esrilibs 目錄中,此目錄在 Oracle 伺服器上創建以存儲庫。

 

 

Oracle 10g

Oracle 監聽器能夠進行多種配置。例如,可能有多個監聽器與資料庫關聯,而每個監聽器又可管理多種類型的服務請求。這是一個很複雜的主題,本文檔並未涵蓋其中的很多種變化。參閱《Oracle 資料庫網路服務管理員指南》瞭解有關配置監聽器的詳細信息是很重要的。

配置監聽器的一個最重要方面是要告知 extproc 在哪裡找到共用庫。需要修改監聽器配置以指定共用庫的位置以及重新啟動 Oracle 監聽器進程,這樣配置更改內容才能生效。

本文檔涉及兩個標準的 Oracle 監聽器配置文件:tnsnames.ora 和 listener.ora。這兩個文件通常位於 ORACLE_HOME/net/admin。本文檔介紹所需的配置設置。

管理設置有多種方法。可用文本編輯器編輯文本文件,使用 Oracle Net Manager,或者使用 Oracle Net Configuration Assistant。Oracle 提供有關如何配置監聽器的文檔。有關詳細信息,請參閱《Oracle 資料庫網路服務管理員指南》。

tnsnames.ora 文件包含已知資料庫服務的目錄。此文件可在本地資料庫或遠程伺服器上定義服務。有一個條目專供本地資料庫伺服器通過進程間通信 (IPC) 將函數調用發送到 extproc 使用。此條目標註為 EXTPROC_CONNECTION_DATA。可更改此條目下的 Key 和 SID 值。

這些項目用於將該條目鏈接至 listener.ora 文件中的對應信息。該鍵的名稱可以為任何縮寫名稱,但它在 listener.ora 文件和 tnsnames.ora 文件中的名稱必須一致。這些值區分大小寫。僅監聽器進程可使用這些值,用戶或應用程式不可使用。

listener.ora 文件描述監聽器針對請求所監聽的某些(不一定是全部)服務。

此文件中可更改的值包括:

  • SID_LIST_LISTENER

    此標註是名為 LISTENER(預設監聽器名稱)的監聽器要處理的 SID 列表的開頭。

  • SID_LIST 和 SID_DESC

    標題 SID_LIST 下的 SID_DESC 條目用於定義服務。列表中的第一個條目處理 extproc 請求,第二個條目處理客戶端會話。

  • SID_NAME

    其值必須與在文件 tnsnames.ora 中為 extproc 指定的 SID 對應。

  • ORACLE_HOME

    定義此項服務的 Oracle 主頁的位置。從此位置下的文件夾載入 extproc 程式文件。

  • PROGRAM

    指定 extproc 可執行文件的文件名。此區分大小寫的名稱可能是 extproc 或 extproc.exe,具體取決於操作系統的類型。文件位於 ORACLE_HOME/bin。

  • ENVS

    這是 extproc 在運行時所使用的環境變數的列表。列表用冒號分隔。此列表必須包括環境變數 EXTPROC_DLLS 以及 extproc 在運行時需要的任何其他環境變數的定義,其他環境變數通常包括 UNIX 和 Linux 系統中的 LD_LIBRARY_PATH、SHLIB_PATH 或 LIBPATH,或者 Windows 伺服器上的 PATH。路徑變數通常包括幾何與投影引擎庫的位置。

  • EXTPROC_DLLS

    此環境變數用於定義 extproc 可直接從中載入和調用函數的庫的列表。必須在此指定包含以下庫的文件的路徑:形狀庫,用於通過 SQL 來訪問 ST_Geometry 類型或 GDB_ITEMS_VW 和 GDB_ITEMRELATIONSHIPS_VW 視圖;st_raster 庫,用於通過 SQL 來訪問 ST_Raster 類型。

    對於安裝在 UNIX 上的 Oracle 伺服器,列表用冒號分隔,對於安裝在 Windows 上的 Oracle 伺服器,列表用分號分隔。所有路徑都必須是絕對路徑並且指向本地目錄,或者是 Oracle 系統用戶可訪問的 UNC 路徑。這也意味著如果已將 ArcSDE 應用程式伺服器安裝在非 Oracle 伺服器上,則必須將形狀和柵格庫從 SDEHOME 中的 bin 目錄複製到 Oracle 伺服器。

    不存在環境變數替換。

    可選關鍵字 ANY 和 ONLY 可用於放寬或限制 extproc 使用庫文件的方式。如果將 ANY 放在路徑前面,Oracle 可從指定路徑載入任何庫並且不必提供庫名稱。如果將 ONLY 放在路徑前面,Oracle 將僅使用路徑中提供的特定庫。

  • KEY

    為此條目設置的值將此監聽器鏈接到文件 tnsnames.ora 中的對應服務條目。該值將此監聽器與可能存在於同一資料庫伺服器的其他 IPC 監聽器區分開來。key 可為任何名稱縮寫,但在文件 listener.ora 和 tnsnames.ora 中必須相同。key 區分大小寫。

步驟:
  1. 進行任何更改之前,要備份 tnsnames.ora 和 listener.ora 文件。
  2. 打開 Oracle 伺服器上的 tnsnames.ora 文件。
  3. 在 tnsnames.ora 文件中更改 EXTPROC_CONNECTION_DATA 下的 Key 和 SID 值。
    EXTPROC_CONNECTION_DATA =
    (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = IPC)(Key = EXTPROC1))
        )
        (CONNECT_DATA =
          (SID = PLSExtProc)
          (PRESENTATION = RO)
        )
    )

    此條目必須始終有標註 EXTPROC_CONNECTION_DATA。此條目供資料庫伺服器通過進程間通信將函數調用發送到 extproc 使用。

  4. 打開 Oracle 伺服器上的 listener.ora 文件。
  5. 更改所需的條目以設置監聽器將接受其請求的伺服器。

    第一個示例用於同時安裝有 ArcSDE 應用程式伺服器和 Oracle 的 Windows 操作系統。

    LISTENER =
    (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    (ADDRESS = (PROTOCOL = TCP)(HOST = svr1.dmn1.com)(PORT = 1521))
        )
     )
    
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
          (PROGRAM = extproc)
             (ENVS="EXTPROC_DLLS=C:\ArcSDE\sdeexe\bin\st_shapelib.dll;c:\ArcSDE\sdeexe\bin\libst_raster_ora.dll")
     )  
    )

    此示例顯示的條目用於安裝有 ArcSDE 應用程式伺服器和 Oracle 的 Linux 或 UNIX 伺服器:

    LISTENER =
    (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    (ADDRESS = (PROTOCOL = TCP)(HOST = svr1.dmn1.com)(PORT = 1521))
        )
    )
    
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
    (ORACLE_HOME = /servit/oracle/product/10.2.0/db_1)
          (PROGRAM = extproc)
             (ENVS="EXTPROC_DLLS=/servit/ArcSDE/sdeexe/lib/libst_shapelib.so:/servit/ArcSDE/sdeexe/lib/libst_raster_ora.so")
        )
       )
  6. 更改完 listener.ora 文件後,重新啟動 Oracle 監聽器。
     



 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 從MySQL5.5開始,MySQL以插件的形式支持半同步複製。如何理解半同步呢?首先我們來看看非同步,全同步的概念 非同步複製(Asynchronous replication) MySQL預設的複製即是非同步的,主庫在執行完客戶端提交的事務後會立即將結果返給給客戶端,並不關心從庫是否已經接收並處理,這樣 ...
  • 博主不想寫字並向你仍來了一堆代碼 1-6 SQL——結構化查詢語言,Structured Query Language; 基本按列查詢: 高級一點的過濾查詢,WHERE,ORDER,IN,NOT,AND,OR,BETWEEN,NULL: 通配符,%,_,[](實測MySQL我這裡不支持。。。) 不要 ...
  • 背景: 測試環境1台centOS機器,最近一段頻繁報“ ”, 記錄解決問題的思路,最終找到問題根源:黑客入侵,總結經驗。 思路: 查看max_allowed_packet : show global VARIABLES like '%max_allowed_packet%'; (註意:mysql 系 ...
  • 安裝Redis包 在\Python27\Scripts目錄下執行 Python操作Redis 結果 ...
  • http://stackoverflow.com/questions/12426320/how-do-i-set-the-default-schema-for-a-user-in-mysql http://stackoverflow.com/questions/12426320/how-do-i-s ...
  • 題目:設有一資料庫,包括四個表:學生表(Student)、課程表(Course)、成績表(Score)以及教師信息表(Teacher)。 四個表的結構分別如表1-1的表(一)~表(四)所示,數據如表1-2的表(一)~表(四)所示。用SQL語句創建四個表並完成相關題目。 表1-1資料庫的表結構 表(一 ...
  • MySql學習筆記 ...
  • Oracle學習筆記——點滴彙總 http://www.botangdb.com/ Oracle GI = Grid Infrastructure = ASM + Cluster ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...