【问题标题】:Oracle LN-function not supported in ODAC?ODAC 不支持 Oracle LN 功能?
【发布时间】:2017-10-17 20:31:28
【问题描述】:

我正在开发一个从 Oracle 数据库中获取数据的 C# 程序。我安装了 ODAC(刚刚更新到版本 12.2c),连接到 12.1 Oracle 数据库并在我的项目中引用 Oracle.DataAccess

在我的一个查询中,我想使用众所周知的“hack”exp(sum(ln(col))) 来乘以一些值。但是,当我通过 ODAC 连接数据库时,似乎不支持 ln 函数。我收到一条错误消息,提示“角色无效”。相同的查询在 Oracle SQL Developer 中完美运行。

一些简单的事情:

select ln(value) from table where id=1

会失败,而

select sum(value) from table where id=1

工作得很好。 ODAC 根本不支持 ln 函数吗?我需要添加另一个参考吗?如果没有,我怎样才能让它在 .NET 程序中工作? IDE是VS2015。

【问题讨论】:

    标签: c# oracle12c odac


    【解决方案1】:

    原来只是一个相当具有误导性的错误消息。根本问题是从高精度 Oracle 数字转换为 .NET 十进制数。所以使用 TRUNC(exp(sum(ln(col))),12) 解决了这个问题。

    【讨论】:

      猜你喜欢
      • 2012-02-12
      • 1970-01-01
      • 1970-01-01
      • 2013-10-12
      • 2011-02-20
      • 1970-01-01
      • 2020-07-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多