前言:
PLSQL Developer 无法连接 Oracle server64bit 分为两种情况:
第一种情况是:在 Oracle server 64bit 的数据库服务器上安装 PLSQL ;
第二种情况是:在另外的机器上安装 PLSQL Developer 连接 Oracle server 64bit数据库服务器。
错误症状:
Initialization error
SQL*Net not properly installed
OracleHomeKey:
OracleHomeDir:
原因:
Oracle client是64位的,而plsql是32位的,两者不兼容。
第一种情况解决办法1:
下载跟Oracle服务器同版本的instantclient,然后配置 PLSQL,在 Perference --> Connection 里面设置 Oracle_Home 和 OCI Library,例如本机设置为:
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 server 64bit 也需要现在这个instantclient,然后指定oci.dll。可以参考博客:Navicat Premium 连接 Oracle 数据库。
PS:
如果使用上面的这种方法的话,那么PLSQL读取的配置文件也是instantclient_11_2目录下的配置文件,比如我的配置文件路径就是:
D:\app\oracle\product\11.2.0\instantclient_11_2\NETWORK\ADMIN 我们就要将
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 server 64bit 以后,再安装oracle_client_32bit,然后在配置上有一下注意点:
1、oracle server 64bit 配置监听器 listener 和数据库连接名 testdb;
2、oracle_client_32bit 不要配置监听器,只配置数据库连接名 testdb;
3、然后安装 plsql,连接testdb,正常连接。
第二种情况解决办法:
安装 oracle_client_32bit,创建数据库连接,安装 PLSQL Developer,这样就能够正常连接。
TNS_ADMIN 的设定:
这个环境变量是用来设定到底使用那个tns配置文件的。因为我们在一台机器上面安装 oracle server 64bit 和 oracle client 32bit,那么就会有两个 tns 的配置文件,两个配置文件放在一下目录:
1、D:\app\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN
2、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,那么上面的路径会发生改变。