2011年12月12日 星期一

安裝 Oracle Client 10.2 後出現 ORA-12154: TNS: 無法解析指定的連線 ID

又遇到一個陌生的領域
一直以來都是用 SQL Server ,但現在有個系統要跟 Oracle 連接
依照現行 Oracle 使用的版本 10.x.x 來來安裝 Oracle Client
但安裝完後設定時一直出現以下的錯誤訊息:

ORA-12154: TNS: 無法解析指定的連線 ID

在 Google 中找了很久,終於找到以下這篇

==============================================================
Oracle-12154 無法解析指定的連線 ID


http://adisonwu.blogspot.com/2010/01/oracl-12154-id.html
安裝新版oracle client後,發現toad可以連線,但ASP.NET網站無法連線資料庫

ORA-12154: TNS: 無法解析指定的連線 ID

查詢之後,發現幾個線索

1. 環境變數
     http://blog.miniasp.com/post/2007/10/Oracle-10g-Client-Installation-Note.aspx
2. oracle的dll改變版本序號寫法
     http://blog.miniasp.com/post/2009/08/Solve-ASPNET-cannot-connect-Oracle-DB-using-Development-Server.aspx
3. 同樣是系統變數問題,不過使用registry方法修改
4. VS安裝路徑問題
     http://blog.miniasp.com/post/2009/08/Solve-ASPNET-cannot-connect-Oracle-DB-using-Development-Server.aspx

4的情況可以排除,雖然我的環境相同,不過之前可以正常運作

2的情況有點詭異,所以選擇先設定系統變數
由於registry中並沒有3所提及的預設路徑,
因此使用了1的解法參照情況加入了TNS_ADMIN變數後,VS2005就可以正常運作==============================================================


而第一點中所提到的環境變數如下:

==============================================================

設定環境變數


指定 Oracle 應用程式的 HOME 目錄
    RACLE_HOME = D:\oracle\product\10.2.0\client_1
在「系統環境變數」指定 Client 要使用的字集
    NLS_LANG = TRADITIONAL CHINESE_TAIWAN.ZHT16MSWIN950
在「系統環境變數」指定 tnsnames.ora 檔案所在的路徑
    TNS_ADMIN = D:\oracle\product\10.2.0\client_1\NETWORK\ADMIN
在「系統環境變數」指定日期的輸入、輸出格式
     NLS_DATE_FORMAT = yyyy-mm-dd hh24:mi:ss
==============================================================


上文作者解決了他的問題,但我依此法仍發現會有問題
而且心中想的是 Oracle 這麼大的系統,怎會要這種FIX法??
後來又找到一些方向:
可以用新版的 Oracle Client 來連結舊版的 DB

所以二話不說,改下載新版 v11.2.0

先在自己的電腦上( Windows XP)安裝測試 Bingo!!

沒有留言:

張貼留言