因为oci.dll版本不对。因为Navicat是通过Oracle客户端连接Oracle服务器的,Oracle的客户端分为两种,一种是标准版,一种是简洁版,即Oracle Install Client。而我们用Navicat时通常会在自己的安装路径下包含多个版本的OCI,如果使用Navicat连接Oracle服务器出现ORA-28547错误时,多数是因为Navicat本地的OCI版本与Oracle服务器服务器不符造成的。所以我们要做的就是下载OCI使之与我们所安装的Oracle服务器相符合。
instantclient 我自己使用的是orcal11.2版本
链接:https://pan.baidu.com/s/1nFRz6wbiNY2Cc4zsUNDYjw
提取码:24tr
也可以去官网下载对应的版本
https://www.oracle.com/database/technologies/instant-client/downloads.html
选择对应的版本下载即可
下载完并解压,将目录中的instantclient_11_2下的oci.dll文件替换navicat安装目录下的oci.dll。
修改完重启navicat