2 superpojo superPojo 于 2017.11.10 15:31 提问

db2错误: SQLCODE=-302, SQLSTATE=22001, SQLERRMC=null

这是一个oracle to db2 的小程序,
从oracle 取出数据保存到db2当中去,刚开始为了验证数据,我就在oracle的select条件加了where只取一条数据,然后可以成功,这一条数据能够插入到db2当中,但是,我一旦把where条件去掉查询全部,然后执行,便会报错,db2数据库实在不熟悉,有没有大神给解答一下.
from tb where transmsnt in (1007093309,1002083638,10
0203640,1002083644,1002083645,1002083653),
是可以的,当去掉where条件便会报错,是java写的jdbc程序.

com.ibm.db2.jcc.b.jm: DB2 SQL Error: SQLCODE=-302, SQLSTATE=22001, SQLERRMC=null, DRIVER=3.50.152
at com.ibm.db2.jcc.b.wc.a(wc.java:571)
at com.ibm.db2.jcc.b.wc.a(wc.java:57)
at com.ibm.db2.jcc.b.wc.a(wc.java:126)
at com.ibm.db2.jcc.b.tk.b(tk.java:1593)
at com.ibm.db2.jcc.b.tk.c(tk.java:1576)
at com.ibm.db2.jcc.t4.db.k(db.java:353)
at com.ibm.db2.jcc.t4.db.a(db.java:59)
at com.ibm.db2.jcc.t4.t.a(t.java:50)
at com.ibm.db2.jcc.t4.tb.b(tb.java:200)
at com.ibm.db2.jcc.b.uk.Gb(uk.java:2355)
at com.ibm.db2.jcc.b.uk.e(uk.java:3129)
at com.ibm.db2.jcc.b.uk.e(uk.java:3238)
at com.ibm.db2.jcc.b.uk.zb(uk.java:568)
at com.ibm.db2.jcc.b.uk.executeUpdate(uk.java:551)
at DB2ORACLE.transfer.Test.test(Test.java:338)
at DB2ORACLE.transfer.Test.main(Test.java:367)

1个回答

mj200961
mj200961   2017.11.10 15:50
已采纳

C:\Users\Administrator>db2 ? 22001

SQLSTATE 22001: 字符数据,发生右截断;例如,更新或插入值对于列而言太长(字符串),或者日期时间值由于太小而不能赋给主变量。

你检查一下字段的长度和类型,还有一种可能是DB2数据库的版本导致的,你试试换一个版本,DB2的错误确实不友好,都是出现的错误code,你可以在本地安装DB2,然后db2cmd,使用 db2 ? 错误码 来查看

Csdn user default icon
上传中...
上传图片
插入图片