注册
使用asm服务的单节点实例Oracle到dm的dblink遇到的问题
技术分享/ 文章详情 /

使用asm服务的单节点实例Oracle到dm的dblink遇到的问题

dm_forever 2026/05/09 55 0 0

  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" 
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服