暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle NUMBER类型可以接受的最大值是多少?

SQL数据库运维 2022-09-13
6281

点击蓝色字关注“SQL数据库运维”,回复“SQL”获取2TB学习资源!

Oracle NUMBER类型简介
Oracle NUMBER 数据类型用于存储可能为负值或正值的数值。以下说明了NUMBER据类型的语法:
    NUMBER[(precision [, scale])]

    Oracle NUMBER数据类型具有以下精度和尺度。

    • 精度是一个数字中的位数。范围从1到38。

    • 尺度是数字中小数点右侧的位数。范围从-84到127。

    例如,数字1234.56的精度是6,尺度是2。所以要存储这个数字,需要定义为:NUMBER(6,2)。

    精度和尺度都是十进制数字,可选。如果跳过精度和小数位,Oracle使用数字的最大范围和精度。

    例如,下面的表格定义了一个可以存储数值的数字,其数值范围和精度都是最大的:

      NUMBER

      以下语法定义了一个定点数字:

        NUMBER(p,s)

        要定义一个整数,可以使用下面的形式:

          NUMBER(p)

          上面表示一个精度为p,尺度为零的定点数,相当于如下:

            NUMBER(p,0)

            Oracle允许规模为负数,例如,下面的数字将数值四舍五入到数百。

              NUMBER(5,-2)

              请注意,如果在NUMBER(p,s)列中插入数字,并且数字超过精度p,则Oracle将发出错误。但是,如果数量超过尺度s,则Oracle将对该值进行四舍五入。





              Oracle NUMBER数据类型示例

              以下语句创建一个名为number_demo的表,该表由Number数字列组成:

                CREATE TABLE number_demo ( 
                number_value NUMERIC(6, 2)
                );

                以下INSERT 语句向number_demo表中插入三个数字:

                  INSERT INTO number_demo
                  VALUES(100.99);


                  INSERT INTO number_demo
                  VALUES(90.551);


                  INSERT INTO number_demo
                  VALUES(87.556);

                  在上面的示例中,

                  • 第一个值被插入成功,因为该数字在列的定义范围内。

                  • 第二个值向下取整,第三个值向上取整,因为该列只接受带有两个小数点的数字。

                  以下示例插入number_value可以接受的最大值和最小值:

                    INSERT INTO number_demo
                    VALUES(9999.99);


                    INSERT INTO number_demo
                    VALUES(-9999.99);

                    以下示例会导致错误,因为插入的值超出了为列定义的精度。

                      INSERT INTO number_demo
                      VALUES(-10000);


                      --该值被四舍五入,因为数字超过了为列定义的精度。
                      INSERT INTO number_demo
                      VALUES(9999.999);





                      Oracle NUMBER数据类型别名

                      Oracle包含许多可用于定义数字列的别名,如下表所示:


                      请注意,INTSMALLINTNUMERIC DECIMAL只是别名。它们不是真正的数据类型。Oracle在内部将这些别名映射到相应的NUMBER 数据类型。

                      点击关注“SQL数据库运维”,后台或浏览至公众号文章底部点击“发消息”回复关键字:进群,带你进入高手如云的技术交流群。后台回复关键字:SQL,获取学习资料。


                      动动小手点击加关注呦☟☟☟

                      文章转载自SQL数据库运维,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                      评论