开发者社区> 问答> 正文

ORA-01438:该列允许的值大于指定的精度

我们有时会从合作伙伴的数据库中收到以下错误:

ORA-01438: value larger than specified precision allows for this column 完整的响应如下所示:

ORA-01438: value larger than specified precision allows for this column ORA-06512: at "UMAIN.PAY_NET_V1_PKG", line 176 ORA-06512: at line 1 5592988 造成此错误的原因是什么?

问题来源于stack overflow

展开
收起
保持可爱mmm 2019-11-18 17:09:58 838 0
1 条回答
写回答
取消 提交回答
  • 您要存储的数字对于该字段而言太大。看一下标度和精度。两者之间的区别是可以存储的小数点前的位数。

    select cast (10 as number(1,2)) from dual * ERROR at line 1: ORA-01438: value larger than specified precision allowed for this column

    select cast (15.33 as number(3,2)) from dual * ERROR at line 1: ORA-01438: value larger than specified precision allowed for this column 下端的任何内容都会被截断(无提示)

    select cast (5.33333333 as number(3,2)) from dual; CAST(5.33333333ASNUMBER(3,2))

                         5.33
    
    2019-11-18 17:10:05
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载