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

当遇到SQLServerException提示'Arithmetic overflow error converting numeric to data type numeric(1)'时,通常意味着数值运算超出了预设的数据类型范围。由于问题出现在动态生成的表中,排查困难。通过使用SQL Server Profiler工具跟踪SQL语句,可以定位问题源头。打开Profiler,新建跟踪并连接到目标服务器,以此找出导致错误的具体SQL。
摘要由CSDN通过智能技术生成
java.lang.RuntimeException: com.microsoft.sqlserver.jdbc.SQLServerException: Arithmetic overflow error converting numeric to data type numeric.
......


这个报错很直接,一眼就看出来什么问题。由于产品的复杂性,当客户向我们报这个问题时,我们一下子查不出来是那个表(那个sql)引起的,因为很多表是在产品使用过程动态生成的。产品在实现时,表字段基本都给得很大了,出现这个问题很奇怪,怀疑是不是出现什么极端情况(比如,极大值除以极小值)。碰到这种问题,一开始要把涉及到的sql找出来,这样表、数据就可以出现了,然后再研究是那个字段、那个值会导致这个问题。


数据库是mssql server,sqlserver 提供了一个工具 SQL Server Profiler,利用这个工具可以找出对应的sql.


                    Open SQL Server Profiler(under Performance Toolsof MS SQLServer Studio) -> File -> New Trace, then connect to targetserver.


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值