今天碰到一個狀況,有一臺機器用PLSQL鏈接數據庫怎麼也連不上,一直報這個錯:ora--12154 :TNS :could not resolve the connect identifier specified數據庫
查看狀況:數據庫沒有問題,其餘同事能夠鏈接,本機Net Manager 配置鏈接時也正常,測試也經過;只有PLSQL登陸時連不上,同時程序鏈接也不行。注:本機器剛重裝系統,新搭的環境。服務器
後來上網搜了一圈,根據現象,大概判斷是客戶端的問題,因而讓同事本身瞧瞧是否是客戶端安裝有問題,他本身也以爲好象有點不對,安裝目錄下沒有多少東西,因而建議重裝客戶端,第二次重裝後仍是不行,因卸載不完全。此次清理乾淨了,再重裝了一次,告知一次都OK了。oracle
下面將搜到的一些好資料都總結起來:編輯器
1.先檢查服務器端的監聽服務是否打開,若是沒有打開請啓動其監聽ide
客戶端:tnsping <tns_name> 服務器Linux下:工具
#>lsnrctl status查看監聽狀態測試
#>lsnrctl start 啓動監聽spa
2.經過Sql Plus鏈接一下試試,若是Sql Plus鏈接能成功,那就說明你的tnsnames.ora內容有錯誤.net
個人問題就在別名dev_db前面有一個空格,這個能夠經過文本編輯器(Edit Plus,UE等)來查看是否有空格,只要有空格那就確定是不行的,並且若是那段內容是出如今文件的中間的話,將致使該文件裏全部相應的鏈接別名都不成功,若是是在最後面就只有其自身鏈接別名不能成功,其餘鏈接別名仍是能鏈接成功。(注:個人tnsnames.ora配置了多個數據庫實例的鏈接,全部纔有多個鏈接別名。)插件
如:
空格dev_db = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.168.10.5)(PORT = 1521)) ) (CONNECT_DATA = (SID = ora10) ) )
3.若是確保你的tnsnames.ora內容沒有錯誤,那請將%ORACLE_HOME%\product\10.2.0\db_1\NETWORK\ADMIN目錄下的全部文件刪了,而後從新鏈接,通常就能解決了。
說明一下:那個目錄裏的文件是在你創建鏈接的時候動態生成的,不要怕刪了會有問題
4.進入PLSQL Developer的主界面,在登陸界面選擇取消即不登陸進入主界面,而後選擇菜單Tools(工具)-Preferences(首選項),在設置窗口中,選擇Oracle-Connection(鏈接),對應設置窗口中,找到Oracle Home(Oracle主目錄),選擇你本地所安裝客戶端的版本,保存設置,而後從新啓動PLSQL Developer,這時就能夠正常登陸了
裝瞭解決Oracle Developer Tools以後,出現「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設爲空即自動檢測。鏈接正常,問題解決。
2、應用程序中報錯:
一個很難想到的引發ORA-12154的緣由 使用OracleClient.OracleConnection時(我連的是Oracle 11g,其餘版本未知),若是你的執行目錄太長或者有括號等(未考察有些什麼符號),那麼即便你的服務名是對的,也會引發ORA-12154問題「TNS:沒法處理服務名」,當出現這個問題時,請也考慮這個緣由
原文連接:http://blog.csdn.net/loadrunn/article/details/7895726