又遇到一個陌生的領域
一直以來都是用 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!!
沒有留言:
張貼留言