Oracle 数值数据类型最多可存储 38 个字节的精度。超出了.net数据精度,所以会在转换时出现溢出错误。
解决方法:
1、用To_Char,即原有sql语句中,将值列更换为to_char(value).
SELECT TO_CHAR(1/3) FROM DUAL;
2、使用round,限制小数位长度。
SELECT ROUND(1/3,16) FROM DUAL;
推荐使用第一种方法,小数位数由公共运行时控制。
-----------------------
还有人说oracle9.2.0.4下可以打Oracle补丁包解决,详见:
http://excel.cnblogs.com/archive/2005/11/14/276202.html
不过oracle10G,版本还是存在该问题,莫非还需要打补丁包?