近期由于各种原因先后装了几个版本的Oracle数据库及客户端,具体:
1、首先安装了32位的数据库
2、接着安装了32位的Client端
3、最后安装了64位的Client端
期间设置过ORACLE_HOME的路径指向第一步安装的数据库路径。
然后就遇到如下问题:
1、需要64位Oracle Client的程序启动不成功,【报协议适配器不可加载】的错误。解决方案:将ORACLE_HOME指向安装的64位Client的路径即可
2、解决上面的问题后,Toad和PL/SQL等客户端连接数据库报【报协议适配器不可加载】的错误,说明这些程序用的是32位的连接程序,更改ORACLE_HOME又不可取,因为又会回到问题1。
最终解决方案:删除环境变量ORACLE_HOME,两个问题迎刃而解
个人分析应该是各程序会自动检测适用的Oracle连接程序版本,设置ORACLE_HOME后,反倒人为指定了程序使用的Oracle连接程序版本,造成32位和64位混乱的情况。