常量与变量相似,但常量的值在程序内部不能改变,常量的值在定义时赋予,,他的声明方式与变量相似,但必须包括关键字CONSTANT。常量和变量都可被定义为SQL和用户定义的数据类型。
ZERO_VALUE CONSTANT NUMBER:=0; |
这个语句定了一个名叫ZERO_VALUE、数据类型是NUMBER、值为0的常量。
标量(scalar)数据类型
标量(scalar)数据类型没有内部组件,他们大致可分为以下四类:
. number
. character
. date/time
. boolean
表1显示了数字数据类型;表2显示了字符数据类型;表3显示了日期和布尔数据类型。
表1 Scalar Types:Numeric
Datatype |
Range |
Subtypes |
description |
BINARY_INTEGER |
-214748-2147483647 |
NATURAL NATURAL NPOSITIVE POSITIVEN SIGNTYPE |
用于存储单字节整数。 要求存储长度低于NUMBER值。 用于限制范围的子类型(SUBTYPE): NATURAL:用于非负数 POSITIVE:只用于正数 NATURALN:只用于非负数和非NULL值 POSITIVEN:只用于正数,不能用于NULL值 SIGNTYPE:只有值:-1、0或1. |
NUMBER |
1.0E-130-9.99E125 |
DEC DECIMAL DOUBLE PRECISION FLOAT INTEGERIC INT NUMERIC REAL SMALLINT |
存储数字值,包括整数和浮点数。可以选择精度和刻度方式,语法: number[([,])]。 缺省的精度是38,scale是0. |
PLS_INTEGER |
-2147483647-2147483647 |
|
与BINARY_INTEGER基本相同,但采用机器运算时,PLS_INTEGER提供更好的性能 。 |
表2 字符数据类型
datatype |
rang |
subtype |
description |
CHAR |
最大长度32767字节 |
CHARACTER |
存储定长字符串,如果长度没有确定,缺省是1 |
LONG |
最大长度2147483647字节 |
|
存储可变长度字符串 |
RAW |
最大长度32767字节 |
|
用于存储二进制数据和字节字符串,当在两个数据库之间进行传递时,RAW数据不在字符集之间进行转换。 |
LONGRAW |
最大长度2147483647 |
|
与LONG数据类型相似,同样他也不能在字符集之间进行转换。 |
ROWID |
18个字节 |
|
与数据库ROWID伪列类型相同,能够存储一个行标示符,可以将行标示符看作数据库中每一行的唯一键值。 |
VARCHAR2 |
最大长度32767字节 |
STRINGVARCHAR |
与VARCHAR数据类型相似,存储可变长度的字符串。声明方法与VARCHAR相同 |