Oracle 专题
专题目录
您的位置:database > Oracle专题 > Oracle Number类型
Oracle Number类型
作者:--    发布时间:2019-11-20

在本教程中,您将学习oracle number数据类型以及如何使用它来为表定义数字列。

oracle number类型简介

oracle number数据类型用于存储可能为负值或正值的数值。以下说明了number数据类型的语法:

number[(precision [, scale])]

oracle number数据类型具有以下精度和尺度。

  • 精度是一个数字中的位数。 范围从138
  • 尺度是数字中小数点右侧的位数。 范围从-84127

例如,数字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包含许多可用于定义数字列的别名,如下表所示:

ansi数据类型 oracle number数据类型
int number(38)
smallint number(38)
number(p,s) number(p,s)
decimal(p,s) number(p,s)

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

在本教程中,您已经学习了oracle number数据类型以及如何使用它来为表定义数字列。


网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册