一、 oracle 的 number 类型精度、刻度范围 
number(p,s)
p: 1---38
s: -84---127
有效数位 :从左边第一个不为 0 的数算起,到末位数字为止的所有数字,小数点和负号不计入有效位数。 
p>0 ,对 s 分 3 种情况: 
1.s>0 
精确到小数点右边 s 位,并四舍五入 。然后检验有效数位是否 <= p ; 
ZWF.YUDONG>create table t_n(id number(5,2)); 
Table created. 
? -- 小数点前面最多只能有 3 位,小数点后面位数可以任意多 
ZWF.YUDONG>insert into t_n values(123.45);
1 row created.
ZWF.YUDONG>insert into t_n values(123.455);
1 row created. 
ZWF.YUDONG>insert into t_n values(12.345);
1 row created.
ZWF.YUDONG>insert into t_n values(1.234);
1 row created.
ZWF.YUDONG>insert into t_n values(.001);
1 row created.
ZWF.YUDONG>select * from t_n;
?? ??? ID
----------
? 123.45
? 123.46
12.35
1.23
0.00
5 rows selected.
ZWF.YUDONG>insert into t_n values(1234.5678); ? -- 有效位为 4 + 2 > 5 
insert into t_n values(1234.5678)
?? ?? ?? ?? ?? ?? ??? *
ERROR at line 1:
ORA-01438: value larger than specified precision allowed for this column
ZWF.YUDONG>insert into t_n values(12345); ? -- 有效位为 5 + 2 > 5 
insert into t_n values(12345)
?? ?? ?? ?? ?? ?? ??? *
ERROR at line 1:
ORA-01438: value larger than specified precision allowed for this column
