PLSQL Developer 不能连接 64位 Oracle 11g 的解决办法

2015-04-07 14:09:57 · 作者: · 浏览: 44

前言:


错误症状:


Initialization error


SQL*Net not properly installed


OracleHomeKey:


OracleHomeDir:


原因:


  oracle client是64位的,而plsql是32位的,两者不兼容


第一种情况解决办法1:


  下载跟oracle服务器同版本的instantclient,然后配置PLSQL即可。在perference->Connection里面设置OCI Library和Oracle_Home,例如本机设置为:


Oracle Home : D:\app\oracle\product\11.2.0\instantclient_11_2


OCI Library :D:\app\oracle\product\11.2.0\instantclient_11_2\oci.dll



像其他的navicat连接Oracle Server64bit也是需要现在这个instantclient,然后指定oci.dll。可以参考博客:Navicat Premium 连接 Oracle 数据库


注意:(2014-7-17)


如果使用上面的这种方法的话,那么PLSQL读取的配置文件也是instantclient_11_2目录下的配置文件,比如我的配置文件路径就是:


D:\app\oracle\product\11.2.0\instantclient_11_2\NETWORK\ADMIN


此时使用Oracle Server64bit自带的net configuration assistant以及net manager是没有用的。不过可以在net configuration assistant当中配置,然后将配置好的配置文件覆盖到\instantclient_11_2\目录下


比如我可以将D:\app\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN当中的三个配置文件(listener.ora、sqlnet.ora、tnsnames.ora)覆盖到D:\app\oracle\product\11.2.0\instantclient_11_2\NETWORK\ADMIN当中


第一种情况解决办法2:


  在安装Oracle Server64bit以后,再安装oracle_client_32bit,然后在配置上有一下注意点:


Oracle Server64bit配置监听器listener和数据库连接名testdb


oracle_client_32bit不要配置监听器,只配置数据库连接名testdb


然后安装plsql,连接testdb,正常连接。


第二种情况解决方法


  安装oracle_client_32bit,创建数据库连接,安装plsql developer,这样就能够正常连接。


TNS_ADMIN的设定


这个环境变量是用来设定到底使用那个tns配置文件的。因为我们在一台机器上面安装Oracle Server64bit和oracle client 32bit,那么就会有两个tns的配置文件,两个配置文件放在一下目录:


D:\app\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN


D:\app\oracle\product\11.2.0\client_1\NETWORK\ADMIN


如果不设定TNS_ADMIN,那么默认使用client_1的tns



如果设定环境TNS_ADMIN=D:\app\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN,那么上面的路径会发生改变。