Navicat连接Oracle 报 ORA-12737 set CHS16GBK错误
今天看到0day5上面更新了一个用友ERP的漏洞,确实可以下载任意文件;但是用友ERP基本上都是使用了oracle数据库,必须要有一个好的数据库连接工具才可以,Navicat 可以满足需求,测试过程中却遇到了"Navicat连接Oracle 报 ORA-12737 set CHS16GBK错误",以过多次的查找测试,找到解决办法,分享给小伙伴们。
参考了如下的文章:
http://tieba.baidu.com/p/1841846827
http://blog.csdn.net/fengshuiyue/article/details/44407661
总结如下:
从这个错误上看,可以知道是客户端不支持服务器端的字符集造成的,但是修改服务器端的字符集是不现实的,那我们只能从客户端找原因了。我们知道Navicat连接Oracle使用的是OCI方式,而我安装的Navicat 10 Premium使用的是OCI的Instant Client 10 是不支持除英文以外的其他的字符集的,所以替换掉Navicat使用的OCI的DLL文件即可解决这个问题。
本人的测试环境为Navicat 11 Premium,windows7 x64位。
经测试,使用Instant Client 11版本可以解决此问题,使用oracle官网上面的12版本则会出现不识别的问题。
下载以后,替换navicat目录(安装目录\PremiumSoft\Navicat Premium\instantclient_10_2)下面的相关oci文件即可。。
请先将原目录中的几个oci文件放到back目录,然后使用instantclient-basic-windows.x64-11.2.0.4.0.zip里面的相关文件替换,具体的文件为4个,如上图。