近期,接触一个oracle数据库相关的项目,需要使用Navicat连接oracle数据库进行相关操作。
我参考网上的安装教程安装了Navicat12官方版,并通过打补丁和**软件成功**。
(另,吾爱**论坛提供Navicat Premium 11,12绿色免安装**版,https://www.52pojie.cn/thread-903075-1-1.html)
此前只用过Navicat连接mysql数据库,本以为会像之前一样顺利,结果连接oracle数据库时发现,出现如下错误:
通过查阅资料,发现此问题系Navicate Primium的OCI和本地数据库的OCI版本不一致所造成的。
打开Navicat软件选项栏工具->选项->环境,发现instantclient版本为10_2,低于本地数据库的版本(在Navicat右侧可以看到服务器版本)。
Navicat是通过Oracle客户端连接Oracle服务器的,Oracle的客户端分为两种,一种是标准版,一种是简洁版,即Oracle Install Client。而我们用Navicat时通常会在自己的安装路径下包含多个版本的OCI,如果使用Navicat连接Oracle服务器出现ORA-28547错误时,多数是因为Navicat本地的OCI与Oracle服务器版本不符造成的。所以我们要做的就是下载OCI使之与我们所安装的Oracle服务器相符合。(引用自博客 https://www.cnblogs.com/damoblog/p/8301547.html)
解决方法:去oracle官网(http://www.oracle.com/technetwork/cn/database/features/instant-client/index-092699-zhs.html) 下载一个更高版本的instantclient。(注意:下载版本需和系统位数相同,我用的是64bit的win10系统)
再次打开Navicat软件选项栏工具->选项->环境,修改OCI环境(定位到新下载的instantclient)。
重新启动Navicat,配置生效。此时再连接数据库,连接成功。