Sql-Server

如何安裝 Oracle OLE 驅動程序以在 SQL Server 2008 R2 x64 中使用

  • January 31, 2021

按照我們多年來為 Oracle 和 SQL Server 的早期版本使用的標準程序,我已將 Oracle 最新的 ODAC 包安裝到我們新的 SQL Server 2008 R2 x64 節點上,其中包括 Oracle OLE 驅動程序。我已完成建議的系統重啟,但 OraOLEDB.Oracle 未顯示在 SSMS 的 Linked Servers\Providers 節點中。此安裝與以前的 SQL Server 安裝之間的唯一區別是我現在使用的是 SQL Server x64(在 Windows 2008 R2 上)。這應該有什麼不同嗎?

請注意,我可以直接從 SQL Server 節點使用 SQL*Plus 連接到 Oracle 伺服器。我唯一缺少的是那個提供者。有人知道我錯過了什麼嗎?網上有很多文章,但似乎有很多混亂和 Oracle 下載頁面的過時連結。

我唯一需要做的就是創建一個到 Oracle 的連結伺服器,並針對它執行選擇查詢。我不需要通過 Visual Studio 做任何事情。

經過數小時的研究,我設法拼湊了一些 Oracle 11g R2 的工作說明。事實證明,您可能需要安裝 32 位和 64 位客戶端才能在 BIDS/Visual Studio/SSMS 中執行。我可能已經安裝了比我需要的更多的 Oracle 組件,但這對我有用:

  1. 從http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html下載 32 位和 64 位客戶端 (點擊“查看全部”查看不同版本,否則,您將下載完整的 Oracle 程序。您的下載量應該是每個大約 600 兆)
  2. 在 SQL Server 上執行 32 位安裝。選擇“自定義”
  3. 對於 Oracle Base,輸入“C:\Oracle”
  4. 對於“軟體位置”,更改為 C:\Oracle\product\11.2.0\ client_32
  5. 選擇以下組件:
  • SQL*Plus
  • Oracle 呼叫介面 (OCI)
  • 甲骨文網
  • 適用於 Microsoft 事務伺服器的 Oracle 服務
  • 適用於 Windows 的 Oracle 管理助手
  • 用於 OLE DB 的 Oracle 提供程序
  • 適用於 .NET 的 Oracle 數據提供程序
  • 用於 ASP.NET 的 Oracle 提供程序
  1. 使用 64 位安裝程序重複上述步驟。但是,將“軟體位置”更改為 C:\Oracle\product\ 11.2.0 \client_64
  2. 此時我遇到了記憶體錯誤,但選擇忽略它,因為我知道有足夠的
  3. 忽略錯誤“OracleMTSRecoveryService 已存在”

現在安裝完成了,只需要調整一些東西。

  1. 將系統資料庫更改為HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI
  • OracleOciLib應該oci.dll
  • OracleSqlLib應該orasql11.dll
  • OracleXaLib應該oraclient11.dll
  1. 對系統資料庫進行相同的更改HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSDTC\MTxOCI
  2. tnsnames.ora在 C:\Oracle\product\11.2.0\client_32 ** network\admin中創建或複制一個新的
  3. 在 C:\Oracle\product\ 11.2.0tnsnames.ora \client_64 \network\admin中創建或複制一個新的
  4. 重啟!
  5. 您現在應該OraOLEDB.Oracle在 SSMS 中的 Linked Servers\Providers 下看到提供程序
  6. 右鍵點擊此提供程序,然後點擊“屬性”,然後勾選“允許進行中”框
  7. 您現在可以通過 GUI 或 T-SQL 創建連結伺服器

祝你好運!

引用自:https://serverfault.com/questions/175257