Arithmetic overflow error converting numeric to data type numeric错误解决
Posted 格子衫111
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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位整数,超过其规定限制,故报错。
解决方案:
变更表结构,扩大字段长度,
--修改tmp_smart_retl_chg表 item_qty 字段长度
ALTER TABLE tmp_smart_retl_chg ALTER COLUMN item_qty decimal(12,5);
变更后字段容量,7位整数+5位小数,
总结:
后续设计表结构,字段类型及长度,一定要根据实际业务,给字段预留充足的空间
以上是关于Arithmetic overflow error converting numeric to data type numeric错误解决的主要内容,如果未能解决你的问题,请参考以下文章
QRCode.js网址太长生成二维码报错:Code Length OverFlow Error
JNI ERROR (app bug): local reference table overflow (max=512)
JNI ERROR (app bug): local reference table overflow (max=512)
Android Webrtc JNI ERROR (app bug): local reference table overflow (max=512)
JNI内存泄露JNI ERROR (app bug): local reference table overflow (max=512)
JNI ERROR (app bug): local reference table overflow (max=512) Android