使用Navicat10连接Oracle 11g-R2(64bit)数据库出现的问题

环境描述

  • Windows 10
  • Navicat Preminum 10.2
  • Oracle 11gR2(64bit) – 11.2.0.1.0 (本地安装)

出现问题

1. 问题排查:

  • Oracle 服务已启动
  • Listener监听已打开

2. 问题描述:

使用Navicat进行连接本地安装的oracle数据库时,出现如下错误提示:

2015102810385757

网上查阅资料发现,各个Blog说明的错误原因几乎一致:oci.dll版本出现问题。但更神奇的则是注意事项:值得注意的是不管你使用的是32位系统还是64位系统,都应该下载32位的Install Client. 就连Navicat的官方提示的WIKI页面中也作出了如下的注意说明:Navicat 版本 10 或以下,Navicat 只支持 32-bit instant client

image

Navicat WIKI:http://wiki.navicat.com/zh-chs/index.php/%E9%9C%80%E8%A6%81_Instant_client

但按照如此的教程,我反复使用32位版本的instantclient包进行解决问题,但结果则是浪费了3个多小时,最终没有解决这个问题。直到我发现了这位和我情况类型的bro:http://www.144d.com/post-315.html 他向我提示了一个信息,虽然我的Navicat时32位版本的,但是我的Oracle安装的则是64位的,是不是我应该使用64位版本的instantclient包呢?

抱着这个问题,于是开始了我的解决方法。(后来发现:之前看到的许多的BLOG的年份,最早的都已经可以追溯到2012年。。。如此过时的信息,导致我浪费了如此多的时间~)

解决方法

错误原因:虽然受到不少过时信息的影响,但问题的原因还是因为Navicat中需要导入的oci.dll文件版本不对

1. Navicat设置oci.dll文件的位置:

image

2. 下载Oracle官方instantclient包(64bit)

地址:http://www.oracle.com/technetwork/topics/winx64soft-089540.html

image

由于我的Oracle版本为:11.2.0.1.0,所以,需要下载如下两个文件(这里选择的instantclient包需要与安装的Oracle的版本保持一致):

image

3. 下载后两个压缩文件解压到一个目录下:

image

4. 在Navicat中设置instantclient_11_2包中的oci.dll文件和sqlplus.exe文件路径

image

5. 再次尝试连接,成功

image

至此,解决问题。耗费时间:210分钟。