ORA-12557的解決過程
ORA-12557: |
TNS:protocol adapter not loadable |
Cause: |
On some platforms (such as OS/2) protocol adapters are loadedat run-time. If the shared library (or DLL) for the protocoladapter is missing or one of its supporting libraries is missingthen this error is returned. |
Action: |
For further details, turn on tracing and reexecute theoperation. The trace file will include the name of the sharedlibrary (or DLL) that could not be loaded. |
1. Make sure the %ORACLE_HOME%/bin directory(即目錄) is in your (環境變數)PATH.//即ORA-12557的出現有時候與ORACLE_HOME未設定或設定錯誤有關
2. Make sure the protocol is typed/specified correctly in your
tnsnames.ora file or whatever source you're using to resolve service
names.
3. TCP is the default protocol and is installed by default.If
you're using something different (like SPX) make sure you installedthe
protocol adapter.
4. Make sure TOAD is using the correct oracle_home if youhave
multiple homes installed
-------------------------環境是裝了兩個執行個體,一個9i,一個10G
SQL> conn sys/admin@c11 assysdba;
ERROR:
ORA-12557: TNS:protocol adapter not loadable
------lsnrctl>status 報錯
Message 1053 not found; No message file for product=NETWORK,facility=TNSTNS-12538: Message
12538 not found; No message file for product=NETWORK,facility=TNS
TNS-12560: Message 12560 not found; No message file forproduct=NETWORK, facility=TNS
TNS-00508: Message 508 not found; No message file forproduct=NETWORK, facility=TNS
---------------
1、重新設定監聽
2、echo %oracle_home% 查看所開啟的執行個體是不是在這個目錄下
如不是設set oracle_home=d:oracleora92
以上摘自:http://steve352.itpub.net/post/33251/306560
恰巧今天有個朋友同樣裝了9I跟10也出現了ORA-12557,修改oracle_sid錯誤仍然,修改oracle_home為當前資料庫的oracle_home以後,問題解決.
說明:
1、ORACLE_HOME是Oracle所安裝軟體的根目錄。Oracle根據這個根目錄,可以相對定位其他相關的程式在哪
(ORACLE_HOME如果不對的話,那麼比如啟動資料庫或者登陸的時候找不到相關的程式會出錯)
2、SID是建立一個資料庫時,這個資料庫的標識符
3、如果一個版本裡有2個或多個instance那怎麼設定oracle_sid。
其實在環境變數裡設定oracle_sid只是在conn 不帶@時預設串連的資料庫,所以只有一個,其實可以不設定。但是如果一個版本裡有2個或多個instance時,conn就必須帶 @sid_name了(sid_name即是一個網路服務名,注意這個時候是必須要開啟監聽了lsnrct start)
=========================================
ORA-12557: TNS:protocol adapter not loadable
環境背景:本機有多個oracle執行個體(11,9i),已連線的服務器的oracle是9i
前因:我剛進公司,於是電腦域帳號還在審批中沒下來,用的以前那人的帳號登入系統,一切正常。
後果:我的帳號下來了,於是我換成我自己的帳號登入電腦,所有配置重設,這時候一切的環境變數重新設定,當所有的環境變數設定和之前一樣,以為大功告成了。
開啟plsql,串連oralce,報了這個錯:ORA-12557,網上找了一大堆,都不是我的出現問題的原因,搞了一下午,實在搞不定了,找公司大神一看,大神直奔主題,點開plsql中的,協助->支援資訊,看到Preferences中的OCI Library用的11g的oci.dll,一目瞭然。
於是開啟Preference Files中的2個Default.ini檔案查看,把OCIFile改掉成9i的路徑(OCIFile=D:\Oracle9i\ora90\BIN\oci.dll),搞定。
汗啊~~~~~~~~~~搞了我一下午,大神就搞了1分鐘不到