環境準備 客戶端 Windows 10 ArcCatalog 10.8.1 精簡版Oracle Client 12 - 32 bit 安裝包名稱:instantclient-basic-nt-12.1.0.2.0.zip Navicat Premium 15 服務端 Windows Server 2 ...
環境準備
客戶端
- Windows 10
- ArcCatalog 10.8.1
- 精簡版Oracle Client 12 - 32 bit
安裝包名稱:instantclient-basic-nt-12.1.0.2.0.zip - Navicat Premium 15
服務端
- Windows Server 2019 Standard(桌面體驗版)
- Oracle 12.1.0.2
安裝包名稱:winx64_12102_database_1of2.zip、winx64_12102_database_2of2.zip
版本對應
以下表示ArcGIS Desktop各組件支持連接的Oracle服務端資料庫,連接Oracle資料庫時,須在Desktop相同電腦上安裝對應Oracle版本的32位的客戶端(本文以精簡版Oracle Client 12 - 32 bit為例)
ArcGIS版本 | 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+ | 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 | 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 | 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 伺服器安裝步驟
- 系統類 選用 服務端
- 安裝類型 選用 高級安裝
- 資料庫標識符 取消勾選 創建為容器資料庫,勾選後創建用戶需以 c## 為用戶名首碼,與sde創建衝突(此為12c版本後新特性)
空間資料庫搭建
1.在Navicat中測試連接
啟動Navicat,使用sys用戶連接Oracle數據,測試連接是否生效,註意在高級標簽頁中將角色設置為SYSDBA
2.在ArcCatalog中測試sys用戶連接
- 需確保已安裝 32bit Oracle Client
- 啟動ArcCatalog
- 在 資料庫鏈接 中,點擊 添加資料庫連接
- 如下所示,選用Oracle,輸入數據ip/實例名,輸入sys賬號密碼
- 連接成功後出現,ip.sde 選項,並可展開查看數據表
- 如出現 Ora-12504 錯誤,一般是沒配置 tnsnames.ora 或配置錯誤,詳見上文
3. 將st_geometry拓展文件拷入Oracle目錄
- 隨ArcGIS安裝,在 <Desktop安裝目錄>\DatabaseSupport\Oracle\Windows64 文件夾下有win64版Oracle的st_geometry文件,名為 st_shapelib.dll
- 將 st_shapelib.dll 拷入Oracle服務端bim目錄下,預設安裝時路徑為 C:\app\Oracle12\product\12.1.0\dbhome_1\BIN
4. 創建sde
- 啟動ArcCalalog,在 工具箱>系統工具箱>Data Management Tools.tbx>地理資料庫管理>創建企業級地理資料庫
- 按如下配置參數
- 此步驟出現ORA-65096錯誤,一般是容器資料庫類型導致,應在安裝時取消相關選項,或參照其它文章重新配置
5. 以sde角色連接資料庫
- 同步驟 2.在ArcCatalog中測試sys用戶連接
- 用戶及密碼更改為新創建的 sde
- 連接完成後,出現 ip.sde, 展開並右鍵,出現可新建要素等空間數據類型選項,代表創建成功
6. 激活st_geometry空間函數庫
參照 https://blog.csdn.net/weixin_42876784/article/details/114832026
- 確保完成 3. 將st_geometry拓展文件拷入Oracle目錄
- 參照 1.在Navicat中測試連接 使用Navicat連接Oracle資料庫,註意角色為sde
- 點擊新建查詢,輸入以下命令
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;
- 在Oracle服務端中打開 C:\app\Oracle12\product\12.1.0\dbhome_1\NETWORK\ADMIN\listener.ora 文件
- 修改dll配置為ANY,如
(ENVS = "EXTPROC_DLLS=ANY")
- 保存listener.ora併在系統服務中重啟Oracle相關服務
- 在Navicat中執行以下查詢語句,測試st_geometry拓展是否已配置
select * from user_libraries where library_name = 'ST_SHAPELIB';
- 輸出結果包含st_shapelib.dll,代表配置成功
7. 測試st_geometry函數
- 參照 1.在Navicat中測試連接 使用Navicat連接Oracle資料庫,註意角色為sde
- 點擊新建查詢,輸入以下命令
SELECT sde.st_geometry('point (110.06544906 34.52209921)', 4326) FROM DUAL;
- 無報錯誤,並輸出結果,代表函數成功被識別,並可執行
至此,搭建及配置已完成