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)

 

相关文章:

  • 2021-12-01
  • 2021-08-20
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2023-03-21
  • 2021-10-10
  • 2021-11-28
猜你喜欢
  • 2022-01-13
  • 2021-10-05
  • 2021-06-13
  • 2021-09-20
  • 2021-12-21
  • 2021-07-22
相关资源
相似解决方案