• Oracle OCI22053: 溢出错误


    OCI-22053: 溢出错误

    原来sql语句如下:

     1 select avg(str.result_value),
     2        avg(str.result_value) + stddev(str.result_value) sd1,
     3        avg(str.result_value) + stddev(str.result_value) * 2 sd2,
     4        avg(str.result_value) - stddev(str.result_value) sd3,
     5        avg(str.result_value) - stddev(str.result_value) * 2 sd4
     6   from PDS_STUDY_PULL psp
     7   join pds_study ps
     8     on trim(ps.identity) = trim(psp.header)
     9   join SAMP_TEST_RESULT str
    10     on trim(str.id_numeric) = trim(psp.created_sample_id)

    解决办法:

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

    使用round函数

    round(字段,精度)

    修改成如下sql

    修改后sql
     1 select round(avg(str.result_value), 2) avg,
     2        round(avg(str.result_value) + stddev(str.result_value), 2) sd1,
     3        round(avg(str.result_value) + stddev(str.result_value) * 2, 2) sd2,
     4        round(avg(str.result_value) - stddev(str.result_value), 2) sd3,
     5        round(avg(str.result_value) - stddev(str.result_value) * 2, 2) sd4
     6   from PDS_STUDY_PULL psp
     7   join pds_study ps
     8     on trim(ps.identity) = trim(psp.header)
     9   join SAMP_TEST_RESULT str
    10     on trim(str.id_numeric) = trim(psp.created_sample_id)
  • 相关阅读:
    HOOK启思录---第二章 HOOK的根源
    无标题窗体的移动及其简单美化
    创建mySQL触发器
    HOOK启思录---第一章 HOOK的发展
    【原创】IE6实现PNG透明半透明
    mySQL常用命令
    IE中的条件注释
    HOOK启思录---前言:HOOK是一种思想
    说说出租车叫车流程
    ruby初学笔记1——看懂代码必备语法
  • 原文地址:https://www.cnblogs.com/hfliyi/p/2826964.html
Copyright © 2020-2023  润新知