如上图,运行窗体提示OCI-22053溢出错误,根据从网上查询资料,得知是数字类型的字段的位数过多造成的。 接下来我直接查询了一下数据库的这张表发现:着色区域出现科学计数法的数据。
原因分析 Oracle 数值数据类型最多可存储 38 个字节的精度。当将 Oracle 数值转换为公共语言运行库数据类型时,小数点后边的位数可能过多,这会导致此错误。 解决方法: 使用round()函数: 如何使用 Oracle Round 函數 (四舍五入) 描述 : 传回一個数值,该数值是按照指定的小数位元数进行四捨五入运算的結果。 SELECT ROUND( number, [ decimal_places ] ) FROM DUAL 参数: number : 欲处理之数值 decimal_places :四舍五入小数取几位 ( 预设为 0 ) 例子 : select round(123.456) from dual; 回传 123 select round(123.456, 0) from dual; 回传 123 select round(123.456, 1) from dual; 回传 123.5 select round(123.456, 2) from dual; 回传 123.46 select round(123.456, 3) from dual; 回传 123.456 select round(-123.456, 2) from dual; 回传-123.46
|