【DB.PL/SQL】数据类型 —— 数字
2014-11-20 18:21
190 查看
数字
数据类型 —— NUMBER
NUMBER类型可以保存几乎任何尺度的整数,定点数或者浮点数。NUMBER的算术运算使用一种与平台无关的方式实现的,无论底层硬件平台式什么样的,NUMBER的算术运算都会得到相同的结果。Oracle数据库最多会分配能容纳40个数字的空间。NUMBER变量取值从 10(-130)到10(126)-1。
约束精度和刻度:
NUMBER(precision, scale)
声明的是一个定点数。其中precision是这个数值中总的有效数字的个数。scale表明小数点右面(正刻度)或者左面(负刻度)的数字个数。precison和scale两个值都必须是整数直接量。precesion的合法取值范围从1到38,scale的合法取值范围是从-84到127.
例如: NUMBER(9,2),这个变量的最大的取值是9 999 999.99:
表示整数值:
刻度scale是可选的,缺省值是0.
例如:
x NUMBER(9, 0); x NUMBER(9);
都是包含9个有效数字的整数变量,取值范围为 -999 999 999到999 999 999
在声明中仅使用NUMBER,我们就可以表示浮点值
通过精度和刻度的约束,就可以表示定点小数
通过把刻度设置成0或者忽略它,可以表示整数值
数据类型 ——
数字子类型
Oracle同样提供了若干数字子类型。在多数情况下,这些子类型不过是之前讨论的那些基础类型的别名而已:预定义的数字子类型:
子类型 | 兼容性 | 对应Oracle类型/注意事项 |
DEC(precision, scale) | ANSI | NUMBER(precision, scale) |
DECIMAL(precision, scale) | IBM | NUMBER(precision, scale) |
DOUBLE PRECISION | ANSI | NUMBER,精度达126个二进制数字 |
FLOAT | ANSI,IBM | NUMBER,精度达126个二进制数字 |
FLOAT(binary_precision) | ANSI,IBM | NUMBER,进度最多达126个二进制数字 |
INT | ANSI | NUMBER(38) |
INTEGER | ANSI,IBM | NUMBER(38) |
NATURAL | N/A | PLS_INTEGER,只允许非负值 |
NATURALN | N/A | 和NATURAL一样,但是一个额外的约束是不能为NULL |
NUMERIC(precision, scale) | ANSI | NUMBER(precision, scale) |
POSITIVE | N/A | PLS_INTEGER,只允许正数 |
POSITIVEN | N/A | 和POSITIVE一样,一个额外的约束是不能为NULL |
REAL | ANSI | NUMBER,精度达63个二进制数 |
SIGNTYPE | N/A | PLS_INTEGER,只能是 -1,0和1 |
SMALLINT | ANSI,IBM | NUMBER(38) |
数字操作
相关文章推荐
- 【DB.PL/SQL】程序数据类型 ——
- 【DB.PL/SQL】数据类型 —— 字符串
- PL/SQL Number数字类型函数
- PL/SQL数据类型及操作符
- PL/SQL学习笔记-常量变量及数据类型初步
- PL/SQL数据类型及常用函数
- 第三章 PL/SQL数据类型
- PL/SQL Number数字类型函数
- PL/SQL的数据类型和常用函数
- PL/SQL 集合数据类型(关联数组)
- 关于pl/sql 中的数据类型 number 和 binary_integer
- PL/SQL(二)数据类型
- PL/SQL的数据类型和常用函数
- PL/SQL Number数字类型函数
- 第三章 PL/SQL数据类型
- PL/SQL学习笔记-变量作用域及数据类型深入
- ADO 数据类型转换表 oledbtype sqldbtype
- 全面探讨PL/SQL的复合数据类型
- PL/SQL复合数据类型—record,集合(索引表,嵌套表,VARRAY)—之四
- Oracle 学习:PL/SQL循序渐进全面学习教程--课程十三 使用组合数据类型* 游标操纵数据