SQLServerException: Arithmetic overflow error converting numeric to data type numeric(2)

上次提到,在客户环境发现这个问题

java.lang.RuntimeException: com.microsoft.sqlserver.jdbc.SQLServerException: Arithmetic overflow error converting numeric to data type numeric.
......

利用 SQL Server Profiler 的 trace,找到了出问题所对就的sql(点击 SQLServerException: Arithmetic overflow error converting numeric to data type numeric(1)  了解 trace),这是一个 insert sql。 接下来就是建议客户把对应表的数据导出来,看看能否在本地重现。因为我们给的表重启已足够,不大可能会发现这种溢出的问题的,而且只根据sql也找不到是那个字段,那个值,导致这个问题发生的。


客户很配合,我们又花了大力气,导入数据后,却怎样也重现不了问题,真是奇怪了。

接着继续分析,最后竟然发现,一个简单的select sql 也报了这种错。这回更奇怪了,我把数据存进去了,没问题,但是要取出来的时候,却报错,告诉我不能取出来。

接着发现这个select sql竟然在ms sqlserver studio也报错, 初步怀疑是客户那边的问题,或是客户修改了什么配置,由于时间有限,先把发现告诉客户,让客户找找看。


结果客户回复了,如果他把某一个选项改了,就没这个报错了。这个选项就是"Numeric Round-Abort",默认是False,不知道为什么客户那边是True.  如果是True,则会报错。看来,客户还是不能随便改自己的东西啊。










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值