从这个错误上看,可以知道是客户端不支持服务器端的字符集造成的,但是修改服务器端的字符集是不现实的,那我们只能从客户端找原因了。我们知道Navicat连接Oracle使用的是OCI方式,而我安装的Navicat 10 Premium使用的是OCI的Instant Client 10 是不支持除英文以外的其他的字符集的,所以替换掉Navicat使用的OCI的DLL文件即可解决这个问题。

本人的测试环境为Navicat 11 Premium,windows7 x64位。

经测试,使用Instant Client 11版本可以解决此问题,使用oracle官网上面的12版本则会出现不识别的问题。

​Instant Client 11 下载地址​

下载以后,替换navicat目录(安装目录\PremiumSoft\Navicat Premium\instantclient_10_2)下面的相关oci文件即可。。

Navicat连接Oracle 报 ORA-12737 set CHS16GBK错误_客户端

请先将原目录中的几个oci文件放到back目录,然后使用instantclient-basic-windows.x64-11.2.0.4.0.zip里面的相关文件替换,具体的文件为4个,如上图。