现象说明:
源端字符集:AMERICAN_AMERICA.ZHS16GBK
目标端字符集:AMERICAN_AMERICA.AL32UTF8
源端同步过来的数据显示中文乱码。
查询数据库表中含有乱码的字段:
select * from xx.xxxx a where to_char(a.crtopetime,'yyyy-mm-dd')='2024-08-02'
and asciistr(a.customername) like '%?%' or asciistr(a.customername) like '%\FFFD%'
order by a.feerecid,a.crtopetime
处理方法如下,在源端的E进程和目标端的R进程添加如下配置。
Replicate Chinese Characters AMERICAN_AMERICA.ZHS16GBK to target charset AL32UTF8, Oracle to Oracle, 11.1 and before 11.2 (Doc ID 1469735.1)
OGG目标端的R进程的字符集目前配置的SETENV (NLS_LANG=“AMERICAN_AMERICA.AL32UTF8”),
源端的字符集设置是SETENV (NLS_LANG=“SIMPLIFIED CHINESE_AMERICA.ZHS16GBK”)
根据MOS这个解决方法是,源端和目标端都要设置为
setenv NLS_LANG=AMERICAN_AMERICA.ZHS16GBK