Arithmetic overflow error converting numeric to data type numeric错误解决
最近,發現一個定時任務報錯,報錯日志如下:
java.sql.SQLException: Arithmetic overflow error converting numeric to data type numeric. Query: insert into #tmp_smart_retl_chg(store_id,item_nbr,transaction_date,sequence_nbr,dept_nbr,TRANSACTION_TIME,EVENT_ID,ITEM_QTY,ITEM_QTY_INT,reason_code,item_name,status,try_times,create_time) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?) Parameters: [[1154, 981066872, 2023-03-05, 1, 99, 22:09:07, 1814, 134638.56000, 2000, SC, 透明HMS盒-底, 0, 0, 2023-03-05 23:50:00.0], [4754, 981066872, 2023-03-05, 2, 99, 22:09:07, 1814, 134148.00000, 2000, SC, 透明HMS盒-底, 0, 0, 2023-03-05 23:50:00.0]]
排查發現,原來是 ITEM_QTY 這個字段的值太大,超出定義的長度了,故出現數值溢出。
表定義的字段類型為:
[item_qty] decimal(9,4) NULL,
最大只能容下5位整數及4位小數,
而實際插入字段數值為134638.56000,有6位整數5位整數,超過其規定限制,故報錯。
解決方案:
變更表結構,擴大字段長度,
變更后字段容量,7位整數+5位小數,
總結:
后續設計表結構,字段類型及長度,一定要根據實際業務,給字段預留充足的空間
總結
以上是生活随笔為你收集整理的Arithmetic overflow error converting numeric to data type numeric错误解决的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小白学雷达系列之脉冲雷达基本组成(一)
- 下一篇: java设计单词英译汉小助手_java课