代码之家  ›  专栏  ›  技术社区  ›  Dan

返回十进制值时,来自Oracle的IDataReader溢出

  •  1
  • Dan  · 技术社区  · 14 年前

    我有一些代码负责从 IDataReader 变成一个 IronPython.Runtime.List 属于 PythonTuples . 同一代码用于几种不同类型的数据库连接(包括Access、Oracle和MySQL)。

    甲骨文的 OracleDecimal 数据类型在调用时导致溢出 dataReader.GetValues() 当光标包含精度较高的值时。这个问题已经被很好地记录下来了,解决方案总是涉及到在 OracleDataAdapter . 我只有一个 爱达塔瑞德 接口。

    在没有将我的代码专门绑定到odp.net的情况下,有没有办法解决这个问题?当然,必须有某种方法以不可知提供者的方式获取这些数据吗?

    2 回复  |  直到 14 年前
        1
  •  0
  •   chilltemp    14 年前

    我所知道的唯一一个不可知提供者的方法是对select语句中的值进行舍入。我发现四舍五入到小数点后15位通常会起作用。

        2
  •  0
  •   thecoop    14 年前

    这可能不是你想要的,但是 System.Data.Common.DbDataReader 类有一个 GetProviderSpecificValues 可以做你想做的事的功能