1. 程式人生 > >“ORA-12154: TNS: 無法解析指定的連線識別符號”

“ORA-12154: TNS: 無法解析指定的連線識別符號”

1.檢查登錄檔,HKey_LocalMachine/Software/Oracle下面的Oracle_Home,若不對,修改成正確的;

    2.解除安裝ODP for .Net (或者解除安裝ODT for .Net, ODT中包含ODP, ODT 是VS.Net的一個整合外掛,用於連線和瀏覽oracle資料庫,並且提供對oracle資料庫的拖拽操作,類似VS.Net對於SQL Server的資源管理器);

    3.如果ODT for .Net的目錄依然存在,刪除或者重新命名此目錄;

    然後重起系統,重新連線ASP.Net程式,如果還有同樣的錯誤,看著辦吧,我建議重灌Oracle吧。
    分析原因:系統原來裝的是ORACLE 10G 10.1.0,解除安裝後還沒重啟就裝上10.2.0,結果先是監聽器起不來,竟然還是指向10.1.0的位置,監聽器當然不能啟動了。

    處理過程:
    1、查詢登錄檔,將監聽器指向新的位置,重啟服務,OK;
    2、PL/SQL DEVELOPER還是連線不了,其它方式都正常。將原先安裝在其它邏輯盤的ODP for .Net 解除安裝重灌到與ORACLE 10.2.0同一位置。重啟系統,DEVELOPER還是報錯,不過些時報錯提示資訊為空。
    3、因為DEVELOPER設定有更改後,進入選單TOOLS》PREFERENCES...設定,在ORACLE下的CONNECTION中,將ORACLE HOME和OCI LIBIARY設為空即自動檢測。連線正常,問題解決。

    二、應用程式中報錯:

    一個很難想到的引起ORA-12154的原因
        使用OracleClient.OracleConnection時(我連的是Oracle 9i,其他版本未知),如果你的執行目錄太長或者有括號等(未考察有些什麼符號),那麼即使你的服務名是對的,也會引起ORA-12154問題“TNS: 無法處理服務名”,當出現這個問題時,請也考慮這個原因。