oracle函数 exp()和ln()的问题

select exp(sum(ln(a.字段B))) from table a 在人oracle里面 运行没有问题,但是在.net程序里面就报算术什么溢出了,问题就在那个函数哪里 有没有能解决的功能就是求查出来的数据 字段B 所有值的乘积 有木有人 知道还有什么其他的方法实现没 用sql语句搞定在plsql里面没有问题 但是在程序里面就出错了貌似程序读取数据是在读取的时候才运行那个函数,如果运行完再读取数据的话就不会有问题了
2026年09月20日 02:43
有1个网友回答
网友(1):

你可以尝试把 .NET 程序 里面的, 保存 SQL 查询结果的那个 变量的数据类型, 修改一下。

我估计这个问题的原因,是因为 Oracle 的执行结果, 如果以 数值方式来存储的话, 可能超过了 .NET 程序的精度。

也就是 执行 SQL 的时候, 是不出错的。

出错在于, 将Oracle里面的执行结果, 赋值给 .NET 程序变量的时候, .NET 程序的变量的精度不足,不能保存 Oracle的查询结果, 因此报错了。