问题描述:

销售发货单报错算数溢出:将numeric转换成数据类型numeric时出现算数溢出错误。具体如下图:

当销售发货单的数量为>7万时,报错

AIO5销售发货单numeric算数溢出报错:将numeric转换成数据类型numeric时出现算数溢出错误-LMLPHP

当销售发货单的数量为<7万时,单据正常保存

AIO5销售发货单numeric算数溢出报错:将numeric转换成数据类型numeric时出现算数溢出错误-LMLPHP

更改了BcStk表的avgprice值后也添加不了。

排查过程

过SQL数据库追踪检查到底是哪里的问题。

前方高能请注意:

打开追踪工具

AIO5销售发货单numeric算数溢出报错:将numeric转换成数据类型numeric时出现算数溢出错误-LMLPHP

AIO5销售发货单numeric算数溢出报错:将numeric转换成数据类型numeric时出现算数溢出错误-LMLPHP

先停止,清除AIO5销售发货单numeric算数溢出报错:将numeric转换成数据类型numeric时出现算数溢出错误-LMLPHP

然后运行,同时执行报错的操作(先运行后操作),再在这里立刻停止(越快越好),然后查看语句,可以通过编辑-查找相关的语句。

AIO5销售发货单numeric算数溢出报错:将numeric转换成数据类型numeric时出现算数溢出错误-LMLPHP

AIO5销售发货单numeric算数溢出报错:将numeric转换成数据类型numeric时出现算数溢出错误-LMLPHP

通过这种方式,找到了表BCbal和细表BCbalA中的字段OrderBalance值太大导致的,把该值清零就可以添加了,这个值到底是什么意思?

AIO5销售发货单numeric算数溢出报错:将numeric转换成数据类型numeric时出现算数溢出错误-LMLPHP

继续追究,经过检查发现该客户的未清订单未及时关闭,14年的订单有好多特别大的未清值,订单并未及时关闭。

AIO5销售发货单numeric算数溢出报错:将numeric转换成数据类型numeric时出现算数溢出错误-LMLPHP

备注:先是备份后把 指定的一条数据(对应的客户那条)update了 ,发现后面这个值会根据未清订单自动计算上去的。根源还是在这些未清订单上

解决方案:

1、未清订单及时关闭。

2、要注意单位使用。

04-18 13:35