为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:麒麟10
【CPU】:arm
【问题描述】*:oracle 19c通过dblink访问dm8,oracle字符集zhs16gbk dm字符集utf8,中文显示乱码。
透明网关设置HS_LANGUAGE="AMERICAN_AMERICA.ZHS16GBK"
基于透明网关通过dblink由Oracle访问达梦数据库时,设置不当可能产生乱码,可参考下面方法排查和处理:
产生乱码的原因一般是由于环境变量NLS_LANG和者透明网关配置文件中的HS_LANGUAGE配置与本地库(既Oracle)字符集不一致导致的,通过确认数据库字符集后配置正确变量或参数解决。
1.确认Oracle字符集,如本文中的Oracle字符集为AL32UTF8
select * from nls_database_parameters;
2.设置系统环境变量NLS_LANG,可以配置到用户参数文件中,如.bash_profile文件。
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
3.设置透明网关配置文件中的HS_LANGUAGE参数,本文中透明网关配置文件为inithsdm8.ora。
HS_LANGUAGE="AMERICAN_AMERICA.AL32UTF8"
如果能解决您的问题,请点击最佳答案O(∩_∩)O~

透明网关中改成这个试试HS_LANGUAGE = AMERICAN_AMERICA.AL32UTF8