zoukankan      html  css  js  c++  java
  • OracleException: OCI22053: 溢出错误

    OracleException: OCI-22053: 溢出错误

    from:
    http://blog.csdn.net/WYZSC/article/details/6169496

    OracleException: OCI-22053: 溢出错误

    本人近期遇到此问题,整理网上文摘,并进行相关处理的记录

    该代码的主要功能是使用OracleDataAdapter填充DataSet。查了网上相关的内容后,得知是数字类型的字段的位数过多造成的。
    对 于数字类型的字段,填充DataSet的时候会调用GetValues方法,数字类型的值将从OracleNumber类型转换成 System.Decimal类型,后者的取值范围比前者小,所以可能会引发溢出错误。解决的方法是不使用Fill方法填充DataSet,而是直接调用 OracleDataReader.GetOracleValues。

    原因分析

    Oracle 数值数据类型最多可存储 38 个字节的精度。当将 Oracle 数值转换为公共语言运行库数据类型时,小数点后边的位数可能过多,这会导致此错误。

    解决方法:

    使用round()函数:
    例如:select min(pval),max(pval),round(avg(pval),5) from hvm_data_dga .

    round(avg(pval),5) 使数值小数点后按照四舍五入保留5位。

  • 相关阅读:
    参考__JAVA
    债券价格和通胀率
    C++ 面试题
    欧式和美式期权
    explicit
    smart pointer
    const pointer
    manacher-马拉车算法
    输入有空格的字符串的2种方法
    bind()与connect()——计网中socket的使用
  • 原文地址:https://www.cnblogs.com/baishahe/p/2342816.html
Copyright © 2011-2022 走看看