今天調試db2數據的存儲時,jdbc使用addBatch方法時,拋出異常,異常信息如下: [jcc][1091][10404][3.62.56] 數據轉換無效:參數實例 對於所請求的轉換無效。 ERRORCODE=-4461, SQLSTATE=42815 db2 顯示 SQLSTATE 42815 ...
今天調試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()); 則正常運行了。
排查問題如斯,很是無解,將此問題分享給大家共勉吧,希望遇到類似錯誤的兄弟姐妹不要在這裡卡太久吧。
快過年了,祝大家新年快樂。