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

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-30
  • 2022-12-23
  • 2021-06-12
  • 2022-12-23
  • 2021-12-03
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-20
  • 2021-05-27
相关资源
相似解决方案