簡體   English   中英

如何使用鏈接服務器從 SQL Server 2012 連接到 Oracle 數據庫?

[英]How to connect to Oracle database from SQL Server 2012 using linked server?

我想使用鏈接服務器和 Oracle 客戶端將我的 SQL Server 2012 連接到 Oracle 11g 數據庫。 我已經在本地機器上安裝了 SQL Server 2012。 Oracle 數據庫安裝在客戶端機器上。

我的客戶分享了我機器的 ip 地址、系統 ID、實例號和 Oracle 數據庫用戶 ID 和密碼。

我遵循了以下提到的步驟:

  1. 我已經在我的機器上安裝了 SQL Server 2012
  2. 我已經在我的機器上安裝了 Oracle 客戶端 11g
  3. 我還用 ODAC _32bit 安裝了 ODT
  4. 我使用以下腳本步驟創建了一台鏈接服務器

    exec master.dbo.sp_MSset_oledb_prop 'ORAOLEDB.Oracle', N'AllowInProcess', 1 exec master.dbo.sp_MSset_oledb_prop 'ORAOLEDB.Oracle', N'DynamicParameters', 1 exec sp_addlinkedserver N'MyOracle', 'Oracle', 'ORAOLEDB.Oracle', N'//HOSTNAME/TRQ', N'FetchSize=2000', '' exec master.dbo.sp_serveroption @server=N'MyOracle', @optname=N'rpc out', @optvalue=N'true' exec sp_addlinkedsrvlogin @rmtsrvname='MyOracle', @useself=N'FALSE', @rmtuser=N'ORACLE USERNAME', @rmtpassword='ORACLEPASSWORD'

當我執行以下查詢時出現錯誤:

鏈接服務器“MyOracle”的 OLE DB 提供程序“ORAOLEDB.Oracle”返回消息“ORA-12154:TNS:無法解析指定的連接標識符”。 消息 7303,級別 16,狀態 1,第 9 行無法初始化鏈接服務器“MyOracle”的 OLE DB 提供程序“ORAOLEDB.Oracle”的數據源對象。

MyOracle 上的 exec('select 1 a from dual')

1- 將 ODAC 目錄和 ODAC\\Bin 添加到路徑(使用 SET PATH 命令檢查)

2- 確保您的 Oracle 和 SQL 版本是位兼容的(兩者都是 32 位或者都是 64 位)

3- 確保 ODAC 與它們位兼容。

4- 如果您的 Oracle 實例的端口不是 1521,請將其包含在主機 IP 之后:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM