问题:
设置一个字段为 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博客 ” ,链接:http://blog.itpub.net/8111049/viewspace-662360/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8111049/viewspace-662360/