ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ora-01438: 值大于为此列指定的允许精度

ora-01438: 值大于为此列指定的允许精度

原创 Linux操作系统 作者:haoyuanfen 时间:2010-05-10 17:26:43 0 删除 编辑

问题:

  设置一个字段为 number(2,2),一直都会报此错误,

ora-01438: 值大于为此列指定的允许精度

解决办法: number(2,2) 改成 number(3,2)

Scale can be greater than precision, most commonly when e notation is used. When scale is greater than precision, the precision specifies the maximum number of significant digits to the right of the decimal point. For example, a column defined as NUMBER(4,5) requires a zero for the first digit after the decimal point and rounds all values past the fifth digit after the decimal point.

Table 2-2 Storage of Scale and Precision

Actual Data Specified As Stored As

123.89

NUMBER

123.89

123.89

NUMBER(3)

124

123.89

NUMBER(6,2)

123.89

123.89

NUMBER(6,1)

123.9

123.89

NUMBER(3)

exceeds precision

123.89

NUMBER(4,2)

exceeds precision

123.89

NUMBER(6,-2)

100

.01234

NUMBER(4,5)

.01234

.00012

NUMBER(4,5)

.00012

.000127

NUMBER(4,5)

.00013

.0000012

NUMBER(2,7)

.0000012

.00000123

NUMBER(2,7)

.0000012

1.2e-4

NUMBER(2,5)

0.00012

1.2e-5

NUMBER(2,5)

0.00001


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8111049/viewspace-662360/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-04-02

  • 博文量
    55
  • 访问量
    283764