欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

ORA-12557的出现有时候与ORACLE

程序员文章站 2024-01-18 08:07:16
...

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 missingth

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分钟不到