Sql-Server
如何安裝 Oracle OLE 驅動程序以在 SQL Server 2008 R2 x64 中使用
按照我們多年來為 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 組件,但這對我有用:
- 從http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html下載 32 位和 64 位客戶端 (點擊“查看全部”查看不同版本,否則,您將下載完整的 Oracle 程序。您的下載量應該是每個大約 600 兆)
- 在 SQL Server 上執行 32 位安裝。選擇“自定義”
- 對於 Oracle Base,輸入“C:\Oracle”
- 對於“軟體位置”,更改為 C:\Oracle\product\11.2.0\ client_32
- 選擇以下組件:
- SQL*Plus
- Oracle 呼叫介面 (OCI)
- 甲骨文網
- 適用於 Microsoft 事務伺服器的 Oracle 服務
- 適用於 Windows 的 Oracle 管理助手
- 用於 OLE DB 的 Oracle 提供程序
- 適用於 .NET 的 Oracle 數據提供程序
- 用於 ASP.NET 的 Oracle 提供程序
- 使用 64 位安裝程序重複上述步驟。但是,將“軟體位置”更改為 C:\Oracle\product\ 11.2.0 \client_64
- 此時我遇到了記憶體錯誤,但選擇忽略它,因為我知道有足夠的
- 忽略錯誤“OracleMTSRecoveryService 已存在”
現在安裝完成了,只需要調整一些東西。
- 將系統資料庫更改為
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI
OracleOciLib
應該oci.dll
OracleSqlLib
應該orasql11.dll
OracleXaLib
應該oraclient11.dll
- 對系統資料庫進行相同的更改
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSDTC\MTxOCI
tnsnames.ora
在 C:\Oracle\product\11.2.0\client_32 ** network\admin中創建或複制一個新的- 在 C:\Oracle\product\ 11.2.0
tnsnames.ora
\client_64 \network\admin中創建或複制一個新的- 重啟!
- 您現在應該
OraOLEDB.Oracle
在 SSMS 中的 Linked Servers\Providers 下看到提供程序- 右鍵點擊此提供程序,然後點擊“屬性”,然後勾選“允許進行中”框
- 您現在可以通過 GUI 或 T-SQL 創建連結伺服器
祝你好運!