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)
=========================================