Sql-Server

MS SQL 2008 - 設置 Oracle 連結伺服器小號和房車一世C和ñ一個_和不___ivenerror小號和R在一世C和ñ一種米和n這噸G一世在和n和rr這rSERVICE_NAME not given error

  • April 27, 2011

我正在嘗試將 MS SQL 2008 R2 上的連結伺服器設置為 Oracle 11g 伺服器。我已經安裝了 Oracle 客戶端,並從伺服器複製了 sqlnet.ora、tnsnames.ora 和 listener.ora,並使用以下值:

sqlnet.ora

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

tnsnames.ora

甲骨文 =

 (DESCRIPTION = 

   (ADDRESS = (PROTOCOL = TCP)(HOST = slug.blue.local)(PORT = 1521)) 
   (CONNECT_DATA = 
       (SERVER = DEDICATED) 
       (SERVICE_NAME = oracle.blue.local)
   )
 )

監聽器.ora

聽眾 =

  (DESCRIPTION_LIST =

      (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
          (ADDRESS = (PROTOCOL = TCP)(HOST = slug.blue.local)(PORT = 1521))
       )
   )

但是在創建新的連結伺服器時我不斷收到此錯誤

已創建連結伺服器,但連接測試失敗。您要保留連結伺服器嗎?

附加資訊:

  • 執行 Transact-SQL 語句或批處理時發生異常。(Microsoft.SqlServer.ConnectionInfo)
  • 無法為連結伺服器“ORACLE”初始化 OLE DB 提供程序“OraOLEDB.Oracle”的數據源對象。

連結伺服器“ORACLE”的 OLE DB 提供程序“OraOLEDB.Oracle”返回消息

“ORA-12504:TNS:listener 沒有在 CONNECT_DATA 中指定 SERVICE_NAME。” (Microsoft SQL Server,錯誤:7303)

誰能發現我的配置有任何問題?

是否有其他方法來指定 SERVICE_NAME 或一切都來自 oracle 客戶端中的 .ora 文件?

從語法上講,我認為您的 TNSNAMES.ora 文件沒有任何問題。我能夠複製/粘貼到我的並更改主機名和服務名稱並成功連接。

嘗試使用 SQL*Plus 連接。這會給你同樣的錯誤嗎?你能用 EZCONNECT 語法連接嗎:sqlplus user@‘slug.blue.local:1521/oracle.blue.local’?

您的本地系統上是否安裝了多個 Oracle 客戶端?

此外,請嘗試僅包含您發布的條目的基本 TNSNAMES.ORA 文件。

另外,您是否嘗試使用 tnsnames.ora 文件連接 SQL*Plus?即sqlplus使用者@oracle

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