【Oracle】Oracle中字段定义为number(12,2)是什么意思
number(12,2)这个字段定义表达式中:
12代表此字段一共有12个有效数位,其中有2个是小数数位,于是能用于整数的数位是12-2=10个。
因此,12-2=10表明这个字段最多能容纳10位的整数,多1位都不行;2表明这个字段最多只能容纳2位的小数,多了就会截去(四舍五入方式),少了没问题。
下面是实验过程,用以验证上面做出的论断:
【建表】
SQL> create table test01( 2 v number(12,2) ); 表已创建。
【插值及查询】
SQL> insert into test01(v) values('1.1'); 已创建 1 行。 SQL> insert into test01(v) values('1.12'); 已创建 1 行。 SQL> insert into test01(v) values('1.123'); 已创建 1 行。 SQL> insert into test01(v) values('123456789012'); insert into test01(v) values('123456789012') * 第 1 行出现错误: ORA-01438: 值大于为此列指定的允许精度 SQL> insert into test01(v) values('1234567890'); 已创建 1 行。 SQL> select * from test01; V ---------- 1.1 1.12 1.12 1234567890 SQL> insert into test01(v) values('12345678901'); insert into test01(v) values('12345678901') * 第 1 行出现错误: ORA-01438: 值大于为此列指定的允许精度 SQL>
SQL> insert into test01(v) values('1.235'); 已创建 1 行。 SQL> insert into test01(v) values('1.246'); 已创建 1 行。 SQL> select * from test01; V ---------- 1.1 1.12 1.12 1234567890 1.24 1.25 已选择6行。
END