问题:
设置一个字段为 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/ ,如需转载,请注明出处,否则将追究法律责任。