上次提到,在客户环境发现这个问题
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,则会报错。看来,客户还是不能随便改自己的东西啊。
以上是内存溢出为你收集整理的SQLServerException: Arithmetic overflow error converting numeric to data type numeric(2)全部内容,希望文章能够帮你解决SQLServerException: Arithmetic overflow error converting numeric to data type numeric(2)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)