[IBM][CLI Driver][DB2/NT] SQL0302N

本文介绍了使用DataStage从SQL Server抽取数据至DB2过程中遇到的字符集转换问题。主要原因是中文字符在不同字符集(GBK与UTF-8)中的长度差异导致数据超出字段长度限制。通过调整字段长度设置解决了这一问题。
摘要由CSDN通过智能技术生成

近日在做datastage时,从sql server 中抽取到db2在linux上时好使,但迁到window上却一直报

ori_Exp_v_VT1..Transformer_3: At row 13683, link "DSLink4"
DSTAGE-DB2CLI-0103`:`Row rejected.
DBMS.CODE=-302, SQLSTATE=22001, [IBM][CLI Driver][DB2/NT] SQL0302N The value of a host variable in the EXECUTE or OPEN statement is too large for its corresponding use. SQLSTATE=22001

相当郁闷。

查看db2在linux上配置,字符集为gbk codepage为1386

db2在window上的配置,字符集为utf-8 codepage为1208

再查,发现一个中文在gbk中为两个字符,到utf-8下面却是三个字符。

再查sql,一个中文的字符编码长度直接为"1",晕!!!

好了,将原编码长度(含中文列)全部改为三倍,终于ok!

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11419868/viewspace-1020130/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/11419868/viewspace-1020130/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值