2011-09-28 120 views
1

我是Oracle的新手。我試圖將Visual Studio 2010 VB應用程序與遠程服務器上的Oracle Server連接起來。嘗試將Visual Studio應用程序連接到Oracle時出現錯誤

我通過證明主機名稱和服務名稱來配置我的tnsnames.ora。當我試圖測試連接在服務器Exploreer使用添加連接功能,我得到了以下錯誤:

ORA-12514:TNS:監聽器目前不知道在連接描述符請求服務的

這是否意味着我輸入到tnsnames.ora中的值是錯誤的。或者,我是否需要配置其他任何文檔 - listener.ora,例如?除了上面提到的,我沒有做任何其他更改。請讓我知道如何解決這個問題,因爲它是時間敏感的。

謝謝

回答

1

先將Visual Studio移出圖片。您需要確認您的Oracle客戶端已在您的計算機上正確配置。

如果您安裝了Oracle連接工具,則應該安裝tnsping。在命令行中輸入

tnsping <server_name> 

這將嘗試找到使用你的TNSNAMES文件中指定的配置(如果你SQLNET文件被配置爲擁有甲骨文使用TNSNAMES協議)的Oracle服務器。如果發現它,它會告訴你它使用了什麼方法。然後,您可以將此信息用於Visual Studio連接。

確保你的sqlnet文件是正確的。您使用此文件告訴Oracle用於解析服務器的協議順序(例如,tnsnames,ldap等)。我看起來如下:

SQLNET.AUTHENTICATION_SERVICES = (NTS) 
NAMES.DIRECTORY_PATH = (LDAP,TNSNAMES) 
NAMES.DEFAULT_DOMAIN = <domain_name> 
+0

Thanks.I試圖TNSPING,得到了以下幾點:使用HOSTNAME適配器來解析別名 試圖聯繫(DESCRIPTION =(CONNECT_DATA =(SERVICE_NAME =))( ADDRESS =(PROTO COL = TCP)(HOST = 165.91.176.54)(PORT = 1521))) OK(0毫秒)這是否意味着它已經配置正確?我必須使用主機名連接嗎?我剛剛在Visual Studio的「添加連接」功能中使用我的用戶名和密碼測試了連接。 – user965767

+0

另外,這裏是我的sqlnet文件SQLNET.AUTHENTICATION_SERVICES =(NTS) #NAMES.DIRECTORY_PATH =(TNSNAMES,EZCONNECT) 我應該取消註釋第二行嗎? – user965767

+0

如果返回tnsping,這意味着您的配置是正確的。您是否安裝了Oracle Visual Studio工具(ODT)?或者你剛開始使用服務器資源管理器? –

0

這通常意味着兩件事之一。

  1. 您沒有安裝ODP.Net或它缺少一些dll的(不太可能)
  2. 你有機器和.NET上的Oracle客戶端的多個版本無法找到正確的。

轉到機器的系統路徑,並確保路徑語句中的第一個oracle路徑指向正確的oracle客戶機安裝。

要刪除的Oracle

  1. 如果運行
  2. 刪除所有Oracle目錄停止DTC服務和Oracle MTS服務(C:\ Program Files文件,C:\ ORACLE,C:\ APP等)
  3. 從路徑語句中移除甲骨文(所有條目)
  4. 刪除任何環境變量
  5. 在本地計算機的註冊表和當前用戶部分刪除甲骨文條目(如果存在)
  6. 重新啓動機器
  7. 重新安裝正確的版本
+0

你說得對 - 我有2個版本的Oracle客戶端。當我嘗試在Visual Studio中添加連接時,數據源下拉列表包含client_2目錄的tnsnames.ora中包含的別名。路徑語句中的第一個Oracle路徑也是client_2。所以我認爲它是指向正確的客戶端安裝。在這種情況下我能做些什麼? – user965767

+1

老實說,我會刪除兩個Oracle安裝並重新安裝乾淨。大約5年來我一直在處理這些問題(oracle和.net),這並不美觀。最好運行一個版本。我正在編輯我的答案,並清除刪除oracle的步驟。 – tsells

+0

是否有可能避免所有這些並使用ODBC連接到oracle數據庫? – user965767

相關問題