【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

posted @   逆火狂飙  阅读(614)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2020-02-12 使用Flashback救回被误drop掉的表
2020-02-12 【Canvas与艺术】环形回环边纹
2020-02-12 【高中数学/指数、对数、正弦函数】已知函数f(x)=2^x+x,g(x)=log2_x+x,h(x)=2*sinX+x 的零点分别是a,b,c,则a、b、c的大小顺序是?
2020-02-12 【高中数学/函数/零点】已知函数f(x)=lnx-x-a有两个不同的零点,求实数a的取值范围?
2020-02-12 【高中数学】比较两躺平点的大小关系
生当作人杰 死亦为鬼雄 至今思项羽 不肯过江东
点击右上角即可分享
微信分享提示