这个问题是由Windows平台、Oracle和远程数据库的编码方式不一致导致的,要想解决这个问题首先要查询远程数据库的编码方式,然后更改windows平台和Oracle客户端的编码方式。
查询Oracle数据库的编码方式
查询之前首先要连接Oracle数据库实例,否则就会出线如下图所示的错误。
select userenv('language') from dual;
更改Windows平台的编码方式
添加环境变量NLS_LANG,如下图所示。
更改Oracle的编码方式
这一执行起来比较复杂,详情可参考https://zhidao.baidu.com/question/1865721401695530627.html。
sql> conn / as sysdba;
sql> shutdown immediate;
sql> startup mount;
sql> alter system enable restricted session;
sql> alter system set job_queue_processes=0;
sql> alter system set aq_tm_processes=0;
sql> alter database open;
sql> alter database character set internal_use ZHS16GBK;
sql> shutdown immediate;
sql> startup;