navicat cannot load oci dll||oracle 改字符集为GBK后 navicat 连不上||Ora-28547 ora net错误
此段适用于 解决 navicat cannot load oci dll
环境 Navicat Premium 和 oracle
原因,navicat 32 和64 都只支持 32位的oci.dll(navicat 10以下的版本)
所以得下载32位的 非lite版的 oci.dll
但是:高版本的 10以上的Navicat Premium 支持 32 和 64位的oci.dll
连接失败的话,可能因为 navicat 和 Oracle 一个是32 位一个是 64位。
解决方法:Oracle 是 64位的话用 64位的navicat 。32位的oracle对应 32位navicat
版本对应好了,直接
Navicat 设置OCI 路径:比如我的 E:\oraclexe\app\oracle\product\11.2.0\server\bin\oci.dll,直接设置,重启Navicat就能连接上。
此段适用于 解决 Navicat Oracle 改字符集(AL32UTF8)为(ZHS16GBK)后 navicat 连不上
navicat 自带的OCI.DLL是lite版 ,需下载非lite版,才能支持 oracle 的 GBK编码
但是 高版本的 navicat (10.0以上) 可以直接设置OCI.DLL路径
参考 http://www.coridc.com/archives/2757.html
Navicat 的OCI路径 同上所述。
此段适用于解决 ORA-28547: 连接服务器失败, 可能是 Oracle Net 管理错误
解决方法
命令行 输入 lsnrctl status 或者SQL输入 $lsnrctl status
会返回类似于如下信息
服务摘要..
服务 "CLRExtProc" 包含 1 个实例。
实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 5 个处理程序...
服务 "YMXDB" 包含 1 个实例。
实例 "ym", 状态 READY, 包含此服务的 1 个处理程序...
服务 "orcl" 包含 1 个实例。
实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
服务 "orclXDB" 包含 1 个实例。
实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
服务 "ym" 包含 1 个实例。
实例 "ym", 状态 READY, 包含此服务的 1 个处理程序...
服务 "yuanmeng" 包含 1 个实例。
实例 "yuanmeng", 状态 READY, 包含此服务的 1 个处理程序...
服务 "yuanmengXDB" 包含 1 个实例。
实例 "yuanmeng", 状态 READY, 包含此服务的 1 个处理程序...
命令执行成功
这说明 监听器 启动了应该没问题。
有可能是因为 上面所说的改字符集的那样
(仅因为我遇到并且解决了,因为我下载的32位的oracle XE 版,然后用的是64位 的 navicat,OCI各种不匹配出错)
Oracle 把改字符集(AL32UTF8)为(ZHS16GBK)后 navicat登不上,因为默认的 navicat 的oci 路径不是 oracle下oci.dll的路径,而且自带的OCI.DLL是lite版 ,而lite版不支持GBK等编码
解决方法上面已经给出。若不能解决,请百度 ora-28547。