Arithmetic overflow error converting numeric to data type numeric错误解决
最近,發(fā)現(xiàn)一個定時任務報錯,報錯日志如下:
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]]
排查發(fā)現(xiàn),原來是 ITEM_QTY 這個字段的值太大,超出定義的長度了,故出現(xiàn)數(shù)值溢出。
表定義的字段類型為:
[item_qty] decimal(9,4) NULL,
最大只能容下5位整數(shù)及4位小數(shù),
而實際插入字段數(shù)值為134638.56000,有6位整數(shù)5位整數(shù),超過其規(guī)定限制,故報錯。
解決方案:
變更表結(jié)構(gòu),擴大字段長度,
變更后字段容量,7位整數(shù)+5位小數(shù),
總結(jié):
后續(xù)設計表結(jié)構(gòu),字段類型及長度,一定要根據(jù)實際業(yè)務,給字段預留充足的空間
總結(jié)
以上是生活随笔為你收集整理的Arithmetic overflow error converting numeric to data type numeric错误解决的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小白学雷达系列之脉冲雷达基本组成(一)
- 下一篇: java设计单词英译汉小助手_java课