解决中64位Win7系统上PLSQL无法连接ORACLE的方法(PLSQL无法识别ORACLE_HOME的配置)

Posted jack_孟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决中64位Win7系统上PLSQL无法连接ORACLE的方法(PLSQL无法识别ORACLE_HOME的配置)相关的知识,希望对你有一定的参考价值。

最近新安装了64位的Win7系统,工作中需要用oracle数据库,而数据库是公司IT的DBA进行管理和维护的。

我们只需要连接上去进行使用就可以了,于是我就在自己的机器上安装了oracle client x64和PL/SQL程序,oracle client也设置了环境变量等配置,但打开plsql的时候无法显示数据库,效果如下图:

于是,我自己到网上查了一下,网上说法很多,如下说明。

1、问题

Plsql到目前为止只有32位的程序,而大多数的桌面系统基本都是使用64位的windows操作系统,在64位的windows上,大多数情况下也是安装64位的ORACLE client程序,这种组合,导致plsql无法识别到ORACLE_HOME目录,读取不到tnsnames.ora文件中的连接串

2、解决方案

2.1使用instantclient-basic-win32-10.2.0.5

去官方网站下载,将instantclient-basic-win32-10.2.0.5.zip文件解压,压缩后的文件,复制到指定的目下,如C:\\oracle\\instantclient_10_2\\,最终instantclient的目录为C:\\oracle\\product\\instantclient_10_2

2.2 在windows上配置环境变量

右击“我的电脑”点击”属性“菜单,进入”系统属性“对话框,选择”高级“标签,点击“环境变量”,在用户变量框区域,新建一个名为‘ORACLE_HOME的变量名,根据自己的ORACLE实际安装目录填写其值,例如,笔者的环境的ORACLE_HOME的值为” C:\\oracle\\product\\instantclient_10_2”

参考出处:http://www.2cto.com/database/201503/386267.html

===============================================================

安装了64位的Oracle 11g,使用PLSQL Developer配置好之后 ,读不到oracle的数据库

现象如下图:

 

结合自己的分析和其它资料,总结了解决方法。

 

1 因为PLSQL Developer是32位的,所有需要下载oracle32位的客户端,

地址:http://www.oracle.com/technetwork/topics/winsoft-085727.html。

instantclient-basic-nt-11.2.0.4.0.zip。免安装版的,下载下来解压的本地就行了。


2 假设:oracle的安装home路径为D:\\oracle\\product\\11.2.0;

客户端的解压地址为D:\\oracle\\instantclient_11_2。


配置环境变量:这一步和其它方法略有所不同,这里可以不复制tnsnames.ora文件到客户端目录中

(相信这里就不用说怎么配置环境变量了吧):

TNS_ADMIN =D:\\oracle\\product\\11.2.0\\dbhome_1\\NETWORK\\ADMIN

NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK

说明:TNS_ADMIN,是指tnsnames.ora文件所在的目录名。

如果指定到客户端目录,则必须把tnsnames.ora文件复制过来才可以。

NLS_LANG环境变量,设置成和数据库端一致,可以在SQLPLUS查询字符集信

SQL> select userenv(\'language\') nls_lang from dual;
NLS_LANG
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK

 

4 客户端的使用在这里:

设置Oracle Home 为oracle安装目录home

设置OCI Library为oracle客户端的oci.dll文件的全路径名。

Apply & Ok。

 

5 关掉plsql,重启。看一下,现在有了


里主要就是两点,环境变量TNS_ADMIN配置成tnsnames.ora文件所在的目录名;

PLSQL中OCI Library设置成oracle客户端的oci.dll。

 参考出处:http://blog.csdn.net/netdevgirl/article/details/27818709

==============================================================

绿色启动环境变量配置

另外,也可以编写一个bat文件设置下环境变量;
打开PLSQL Developer的安装目录C:\\Program Files\\PLSQL Developer
编写一个a.bat,文件内容如下:
@echo off
set path=D:\\Program Files\\instantclient_11_2
set ORACLE_HOME=D:\\Program Files\\instantclient_11_2
set TNS_ADMIN=D:\\Program Files\\instantclient_11_2
set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
start plsqldev.exe


注意:set NLS_LANG=AMERICAN_AMERICA.AL32UTF8(为英文)
        set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK(中文的)
我这里oracle11g有可能数据库是中文所以我用了16gbk的,保存txt文本并且修改后缀名为bat,然后双击bat文件,作为PLSQL Developer的启动快捷方式替换PLSQL Developer传统启动方式

5,关闭PLSQL Developer重新打开连接成功,我这里所有的都用管理员身份运行的;

 

6,注意:以后Oracle的监听每次有修改过都要双击a.bat重新指向!要不然就会报ora-12154 tns:could not resolve the connect identifier specified错误

出处:http://blog.csdn.net/tang745163962/article/details/47419501

以上是关于解决中64位Win7系统上PLSQL无法连接ORACLE的方法(PLSQL无法识别ORACLE_HOME的配置)的主要内容,如果未能解决你的问题,请参考以下文章

win7 64位 sqlplus能用但是plsql总是报ora-12560:tns:协议适配器错误

WIN7 64位 oracle ORA-12514:

如何配置PLSQL在64位 win7系统上?已经试过网上所有的方法还是报错

ORA-04036怎么解决oracle12c?

解决32位plsql_Developer客户端连接不64位Oracle11g上数据库

plsql developer 64位 怎么连接oracle 64位