今天调试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()); 则正常运行了。
排查问题如斯,很是无解,将此问题分享给大家共勉吧,希望遇到类似错误的兄弟姐妹不要在这里卡太久吧。
快过年了,祝大家新年快乐。