Oracle为单节点,使用asm存储,由grid用户管理asm共享存储和监听服务,数据库版本为19c,字符集为AMERICAN_AMERICA.ZHS16GBK
达梦字符集为GB18030
1、使用Oracle用户或者grid用户做isql和tnsping都成功,但通过dblink查询达梦端数据,报错ora-28545
原因可能为grid用户的ORACLE_HOME/bin目录下未安装dg4odbc网关,可以从Oracle用户的ORACLE_HOME/bin下复制过来,并执行ldd dg4odbc校验是否缺少依赖,如果不缺少依赖,执行./dg4odbc
[grid@oracle-linux7u6:/u01/app/19.0.0/grid/bin]$ldd dg4odbc
[grid@oracle-linux7u6:/u01/app/19.0.0/grid/bin]./dg4odbc
重启监听后重新测试通过dblink查询达梦端数据
2、使用Oracle用户或者grid用户做isql和tnsping都成功,但通过dblink查询达梦端数据,报错ora-28500
该错误是由于未在配置透明网关文件中配置HS_NLS_NCHAR参数导致,比如透明网关配置文件为initdm8.ora,需要添加参数
HS_NLS_NCHAR=UCS2
3、在Oracle端使用isql查询不乱码,但是用sqlplus和plsql developer查询中文都乱码
odbc.ini配置中添加CHARSET=GB18030
将透明网关initdm8.ora中HS_LANGUAGE改为
HS_LANGUAGE="AMERICAN_AMERICA.AL32UTF8"
文章
阅读量
获赞
