Oracle Number类型
在本教程中,您将学习OracleNUMBER数据类型以及如何使用它来为表定义数字列。
Oracle NUMBER类型简介
OracleNUMBER数据类型用于存储可能为负值或正值的数值。以下说明了NUMBER数据类型的语法:
NUMBER[(precision [, scale])]
OracleNUMBER数据类型具有以下精度和尺度。
- 精度是一个数字中的位数。 范围从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包含许多可用于定义数字列的别名,如下表所示:
| ANSI数据类型 | Oracle NUMBER数据类型 |
|---|---|
| INT | NUMBER(38) |
| SMALLINT | NUMBER(38) |
| NUMBER(p,s) | NUMBER(p,s) |
| DECIMAL(p,s) | NUMBER(p,s) |
请注意,INT,SMALLINT,NUMERIC和DECIMAL只是别名。它们不是真正的数据类型。 Oracle在内部将这些别名映射到相应的NUMBER数据类型。
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创优秀实例教程
转载请注明:文章转载自:代码驿站 [http:/www.codeinn.net]
本文标题:Oracle Number类型
本文地址:http://www.codeinn.net/oracle/1912.html


