在使用远程联合数据库对象的时候发现一个问题: 1、连接到远程数据库查询数据 select jybs_mx from mq_agntinfo fetch first 1 rows only with ur; 结果 JYBS_MX 0会员降级 2、连接本地数据库,通过远程联合数据库对象查询同一个表 结果却是 JYBS_MX 0会员降 和远程数据库相比,少了一个汉字 3、通过以下SQL语句 select jybs_mx,length(trim(jybs_mx)) from mq_agntinfo fetch first 1 rows only with ur; 连接远程数据库查询结果是: JYBS_MX 2 0会员降级 9 而连接本地数据库查询的结果却是: JYBS_MX 2 0会员降 10 本地数据库把1个汉字作为3个字节处理,而远程数据库把1个汉字作为2个字节处理,而字段 JYBS_MX 的数据类型是varchar(10),超过部分被截掉了。 4、分别查看远程数据库和本地数据库的字符集 原来远程数据库的字符集是“GBK”,而本地数据库的字符集是“UTF-8” 结论:DB2数据库字符集为UTF-8时,1个汉字占3个字节 5、简单的解决办法: 把本地的昵称对应的字段类型长度改大,问题解决。