PLSQL Developer 不能连接 oracle 11g 64位 的解决办法
2015-09-25 17:24
696 查看
前言:
plsql developer无法连接oracle server64bit分为两种情况。第一种情况是在oracle server 64bit的数据库服务器上安装plsql,第二种情况是在另外的机器上安装plsql developer连接oracle server 64bit数据库服务器。
错误症状:
原因:
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 server 64bit也是需要现在这个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 server 64bit自带的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 server 64bit以后,再安装oracle_client_32bit,然后在配置上有一下注意点:
oracle server 64bit配置监听器listener和数据库连接名testdb
oracle_client_32bit不要配置监听器,只配置数据库连接名testdb
然后安装plsql,连接testdb,正常连接。
第二种情况解决方法
安装oracle_client_32bit,创建数据库连接,安装plsql developer,这样就能够正常连接。
TNS_ADMIN的设定
这个环境变量是用来设定到底使用那个tns配置文件的。因为我们在一台机器上面安装oracle server 64bit和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,那么上面的路径会发生改变。
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里面设置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 server 64bit也是需要现在这个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 server 64bit自带的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 server 64bit以后,再安装oracle_client_32bit,然后在配置上有一下注意点:
oracle server 64bit配置监听器listener和数据库连接名testdb
oracle_client_32bit不要配置监听器,只配置数据库连接名testdb
然后安装plsql,连接testdb,正常连接。
第二种情况解决方法
安装oracle_client_32bit,创建数据库连接,安装plsql developer,这样就能够正常连接。
TNS_ADMIN的设定
这个环境变量是用来设定到底使用那个tns配置文件的。因为我们在一台机器上面安装oracle server 64bit和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,那么上面的路径会发生改变。
相关文章推荐
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- Oracle Containers for J2EE远程安全漏洞(CVE-2014-0413)
- Oracle 10g R2不能使用EM的问题
- 表空间操作
- PreparedStatement中in子句的处理
- VMware下RedHat4.8_64位安装Oracle 10g RAC--简略脚本
- oracle sql日期比较
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- OS block size和Oracle block size,查找OS Blocksize的方法
- oracle中创建数据库和表空间的几点总结
- 数据库自动备份脚本
- oracle的nvl函数的使用介绍
- 解决oracle用户连接失败的解决方法
- oracle的一些tips技巧
- Oracle 下的开发日积月累
- Oracle存储过程之数据库中获取数据实例
- Windows下ORACLE 10g完全卸载的方法分析
- Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
- ORACLE LATERAL-SQL-INJECTION 个人见解