ORA-12154: TNS:could not resolve the connect identifier specified

今天碰到一個狀況,有一臺機器用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, ODTVS.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     2PL/SQL DEVELOPER仍是鏈接不了,其它方式都正常。將原先安裝在其它邏輯盤的ODP for .Net 卸載重裝到與ORACLE 10.2.0同一位置。重啓系統,DEVELOPER仍是報錯,不過些時報錯提示信息爲空。     3、由於DEVELOPER設置有更改後,進入菜單TOOLSPREFERENCES...設置,在ORACLE下的CONNECTION中,將ORACLE HOMEOCI LIBIARY設爲空即自動檢測。鏈接正常,問題解決。

    2、應用程序中報錯:

    一個很難想到的引發ORA-12154的緣由         使用OracleClient.OracleConnection(我連的是Oracle 11g,其餘版本未知),若是你的執行目錄太長或者有括號等(未考察有些什麼符號),那麼即便你的服務名是對的,也會引發ORA-12154問題「TNS:沒法處理服務名,當出現這個問題時,請也考慮這個緣由

 

原文連接:http://blog.csdn.net/loadrunn/article/details/7895726

相關文章
相關標籤/搜索