Navicat连接Oracle的几个问题及解决方案
1.用Navicat连接Oracle数据库时报错ORA-28547:connection to server failed,probable Oracle Net admin error
解决方案:
上网一查原来是oci.dll版本不对。因为Navicat是通过Oracle客户端连接Oracle服务器的,Oracle的客户端分为两种,一种是标准版,一种是简洁版,即Oracle Install Client。而我们用Navicat时通常会在自己的安装路径下包含多个版本的OCI,如果使用Navicat连接Oracle服务器出现ORA-28547错误时,多数是因为Navicat本地的OCI版本与Oracle服务器服务器不符造成的。所以我们要做的就是下载OCI使之与我们所安装的Oracle服务器相符合。
OCI下载地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
值得注意的是不管你使用的是32位系统还是64位系统,都应该下载32位的Install Client.
还有一点要注意,Oracle9i或以上版本的,要安装Install Client11或以下;Oracle8或8i服务器,需要安装Install Client10或以下。这个问题不大,因为我们现在的Oracle都是10或11了,注意一下就好。
然后在Navicat中配置一下,选择工具-选项
然后选择左边选项卡中的其他-OCI.
在OCI library中找到刚刚下载的文件夹中的oci.dll
这样就完成了Navicat配置,也就使得Navicat中的oci.dll版本和Oracle中的版本一致了,必须重启Navicat才能生效。这样整个配置就完成了。
2.
-
首先,你得有oci.dll这个文件。
有两种方法获得:
-
方法一、如果你本机上装有ORACLE,那么就可以直接用。E:\app\Administrator\product\11.2.0\dbhome_1\BIN
-
方法二、根据 Navicat 官方的文档,其实只需要下载 Oracle 的 Instance Client 即可。这个包只包含一些 dll 文件,无需安装解压即可。
要根据不同的 Oracle 版本来下载 Instance Client 的版本,对应关系如下:
Oracle 9i 或者更新的版本,需要使用 Instance Client 11 这个版本 Oracle 8 和 8i 用 Instance Client 10 版本。
另外必须注意的时候,只能下载 32 位版本,因为 Navicat 不支持 64 位的版本,另外要下载 Basic 版本 (40M),而不是 Basic Lite 版(11兆),因为 Basic Lite 版不支持中文,连接的时候会告诉你服务器端的编码不被支持。
下载完毕后解压到任意一个目录。
下载 Oracle Instance Client 如下图。
-
然后,工具->选项->其他->OCI找到这个位置,在 OCI library 地方选择(解压的目录下或者Oracle目录下)oci.dll文件,确定后即可。
-
最后,重启Navicat Premium就可以了。