首页 > 代码库 > 解决PLSQL连接64位Oracle的问题

解决PLSQL连接64位Oracle的问题

由于现在的笔记本大都是64位的window7系统,然而PLSQL_Developer没有64位的,这造成了我们连接的麻烦,这里教大家怎么将win7_oracle11g_64位连接32位PLSQL_Developer。

我实践了很多次,但一直报错:

1、没有数据库实例

2、没有正确安装32位客户端

3、适配器错误

我的工具:

  • 已经装好的64位Oracle数据库

  • window7_64位的操作系统

  • PLSQL_Developer 9.0以上版本(目前只有32位的)

  • 官方的 instantclient-basic-win32-11.2.0.1.0 文件(这是32位的Oracle客户端)--可到官方网站去下载相应版本,但一定得是基本版的!!

    • 安装你下载的PLSQL_Developer并点击汉化文件进行汉化。
      安装好打开你会发现你的PLSQL_Developer不能正常连接到数据库,没有数据库的初始化内容,如图所示:

    • 技术分享   

    • 请将你下载的instantclient-basic-win32-11.2.0.3.0 文件解压。然后复制到你的数据库安装的文件夹下的product的文件夹下,我的是:

      F:\app\admin\product\instantclient_11_2。

                                                                                                        

  • 技术分享

  • 然后找到Oracle11g中的两个文件listener.ora和tnsnames.ora我的在F:\app\admin\product\11.2.0\dbhome_1\NETWORK\ADMIN里面。都复制到F:\app\admin\product\instantclient_11_2的下面。

  • 然后找到你的PLSQL_Developer安装的目录,我的是:

    F:\PLSQL_Developer

    在里面新建一个记事本,写入以下类似代码:

    @echo off 
    set path=F:\app\admin\product\instantclient_11_2
    set ORACLE_HOME=F:\app\admin\product\instantclient_11_2
    set TNS_ADMIN=F:\app\admin\product\instantclient_11_2
    set NLS_LANG=AMERICAN_AMERICA.AL32UTF8 
    start plsqldev.exe

    技术分享

  • 若是中文编码,则设置为NLS_LANG=SIMPLEFIED CHINESE_CHINA.AHS16GBK

  • 写好后,将你的记事本名称改为start.bat然后点击运行。

    打开PLSQL_Developer后,取消登陆,进入主界面。

    1.点击--工具--首选项--连接:

    2.把上面的注销改为提交

    3.OCI库改为带有instantclient_11_2的路径。

    4.应用--确定--关闭PLSQL_Developer重新运行。

    技术分享

    检查连接选中,

    oracle主目录名:F:\app\admin\product\instantclient_11_2

    OCI库:F:\app\admin\product\instantclient_11_2\oci.dll

    设置完成之后点击应用即可。没配置对,会报以下错误:

  • 技术分享

  • 若此时仍有问题,可以进一步进行配置:系统环境变量

  • 右击我的电脑--电脑属性--高级系统设置--环境变量。

    NLS_LANG(没有的话新建一个,有的话点击--编辑)。

    将它的变量值改为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK

    然后点击--确定。

    TNS_ADMIN:oracle根目录\product\11.2.0\dbhome_1\NETWORK\ADMIN
  • oracle_sid:orcl

  • 此时,仍然报错--报ORA-12560:TNS:协议适配器错误

  • 注意:检查文件listener.ora和tnsnames.ora,需要改变的是客户端里的--即instantclient_11_2下的,但是不能改动Oracle里的这2个文件

  • Oracle里的HOST=localhost,而32位客户端下的文件里的HOST=XXXX(自己的主机名)

  • 注意:版本要一致--即Oracle的版本与32位客户端的版本要一致,我的是11.2.0.1.0版本

  • 技术分享


  • 技术分享

  • 解决PLSQL连接64位Oracle的问题