今天调试db2数据的存储时,jdbc使用addBatch方法时,抛出异常,异常信息如下:

[jcc][1091][10404][3.62.56] 数据转换无效:参数实例  对于所请求的转换无效。 ERRORCODE=-4461, SQLSTATE=42815

db2  显示  SQLSTATE 42815: 数据类型、长度、小数位、值或 CCSID 无效。

根据信息没有得出任何结论,还是没有看出问题,无奈,将每条记录单独执行插入,发现问题:

原因是因为db2数据库addBatch时对jdbc的setString(1,aif.getOKFileFindWeek()) 时, 因aifgetOKFileFindWeek()返回值是空串。

问题就出在这里,db2对addBatch处理,不能使用空串,调整为pres.setString(10, aif.getOKFileFindWeek()  ==  "" ? null : aif.getChildProjectName()); 则正常运行了。

排查问题如斯,很是无解,将此问题分享给大家共勉吧,希望遇到类似错误的兄弟姐妹不要在这里卡太久吧。

快过年了,祝大家新年快乐。

posted on 2018-02-07 20:36  书未来  阅读(1837)  评论(0编辑  收藏  举报