Invalid scale size. Cannot be less than zero

Invalid scale size. Cannot be less than zero

www.firnow.com时间:2010-07-21作者:网络编辑:huyang629点击:58[评论]

-

-

今天遇到Invalid scale size. Cannot be less than zero 这么个问题。之前也遇到过,具体什么原因也没有查看,网上找一些方法就解决了。

java.sql.SQLException: Invalid scale size. Cannot be less than zero

问题原因:

jdbc驱动的一个bug. 网上几乎大部分的解释是对于number类型的值支持有问题。

count(), sum() 等这种集合函数的使用, 使得返回的结果有问题。(解决方法1)

还有就是针对不是集合的,今天遇到的就是这么样情况,之前是把某个数据munber的精度修改就是了,

而今天的是跨数据库的操作两个系统的整合操作,另一个系统只提供了sql语句并且包含视图。这次我就没办法像之前

那样去修改字段的精度了。但是并不是没有解决方法,(见解决方法2).

解决方法:

1. 集合解决

SELECT count(..),  ... 

需要修改成 

SELECT count(..) + 0, ... 

2.jdbc驱动的一个bug对于number类型的值支持有问题

这里我们不讨论为什么,只讨论如何修改。

对于只是某个字段的number的问题,我们可以在数据库中修改其精度。

对于不能修改表的数据结构的 我们 可以在number字段里面有数值型的字段,将其TO_CHAR之后,就OK了。

相关推荐