上网一查原来是oci.dll版本不对。因为Navicat是通过Oracle客户端连接Oracle服务器的,Oracle的客户端分为两种,一种是标准版,一种是简洁版,即Oracle Install Client。而我们用Navicat时通常会在自己的安装路径下包含多个版本的OCI,如果使用Navicat连接Oracle服务器出现ORA-28547错误时,多数是因为Navicat本地的OCI版本与Oracle服务器服务器不符造成的。所以我们要做的就是下载OCI使之与我们所安装的Oracle服务器相符合。
instantclient-basic-windows.x64-12.1.0.2.0下载地址:
http://www.oracle.com/technetwork/cn/database/features/instant-client/index-092699-zhs.html
下载完成之后解压到任意目录,然后打开navicat的工具----->选项------>OCI(如下图),选择刚刚下载的文件中的oci.dll,必须重启Navicat才能生效。
重新链接oracle,问题解决。