记一次 达梦到oracle的dblink出现乱码问题

 

实验重现过程:

oracle创建实例,字符集选择US7ASCII

 

创建表

create table test (name varchar2(50));

插入数据

insert into test values ('中国');

insert into test values ('达梦');

commit;

 

达梦数据库创建dblink(OCI方式)

create link orcl connect 'ORACLE' with "SYSTEM" identified by "oracle" using '192.168.56.101/orcl';

使用dblink查询oracle数据,中文无法显示,为“?”

oracle中查询是正常的

而且达梦数据库设置NLS_LANG,LANG环境变量都没有效果

 

 

解决方法:

使用ODBC方式,可以正常使用。

具体如下

配置oracle的ODBC

 

1.安装unixodbc

yum install unixODBC unixODBC-devel

安装后查看:

 

2.将oracle的odbc驱动放到达梦服务器上,配置odbc.ini文件

如下:oracle部分是配置信息,其中driver为oracle的ODBC的驱动

 

3.测试odbc连接oracle

正常则连接成功:

可能会报错找不到libsqora.so.11.1

ldd libsqora.so.11.1

是找不到libodbcinst.so.1

需要创建软连接,安装unixODBC后会在/usr/lib64 有libodbcinst.so.2文件

使用libodbcinst.so.2文件创建软连接即可

ln -s libodbcinst.so.2 libodbcinst.so.1

 

4.达梦创建ODBC的dblink

create link orcl_odbc connect 'ODBC' with "SYSTEM" identified by "oracle" using 'oracle';

使用orcl_odbc 查询数据,发现是乱码:

 

5.设置环境变量LANG为AMERICAN_AMERICA.US7ASCII

export LANG=AMERICAN_AMERICA.US7ASCII

查询正常:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值