标量(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 |
存储数字值,包括整数和浮点数。可以选择精度和刻度方式,语法: [,
])]。
|
| pls_integer | -2147483647-2147483647 | 与binary_integer基本相同,但采用机器运算时,pls_integer提供更好的性能 。 |
number 数字型 能存放整数值和实数值,并且可以定义精度和取值范围
binary_integer 数字型 可存储带符号整数,为整数计算优化性能
dec 数字型 number的子类型,小数
double precision 数字型 number的子类型,高精度实数
integer 数字型 number的子类型,整数
int 数字型 number的子类型,整数
numeric 数字型 number的子类型,与number等价
real 数字型 number的子类型,与number等价
smallint 数字型 number的子类型,取值范围比integer小
varchar2 字符型 存放可变长字符串,有最大长度
表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相同 |
char 字符型 定长字符串
long 字符型 变长字符串,最大长度可达32,767
date 日期型 以数据库相同的格式存放日期值
boolean 布尔型 true or false
rowid rowid 存放数据库的行号
表3 date和boolean
| datatype | range | description |
| boolean | true/false | 存储逻辑值true或false,无参数 |
| date | 01/01/4712 bc | 存储固定长的日期和时间值,日期值中包含时间 |
lob数据类型
lob(大对象,large object) 数据类型用于存储类似图像,声音这样的大型数据对象,lob数据对象可以是二进制数据也可以是字符数据,其最大长度不超过4g。lob数据类型支持任意访问方式,long只支持顺序访问方式。lob存储在一个单独的位置上,同时一个”lob定位符”(lob locator)存储在原始的表中,该定位符是一个指向实际数据的指针。在pl/sql中操作lob数据对象使用oracle提供的包dbms_lob.lob数据类型可分为以下四类:
. bfile
. blob
. clob
. nclob
操作符
与其他程序语言相同,pl/sql有一系列操作符。操作符分为下面几类:
. 算术操作符
. 关系操作符
. 比较操作符
. 逻辑操作符
算术操作符如表4所示
| operator | operation |
| + | 加 |
| – | 减 |
| / | 除 |
| * | 乘 |
| ** | 乘方 |
关系操作符主要用于条件判断语句或用于where子串中,关系操作符检查条件和结果是否为true或false,表5是pl/sql中的关系操作符
| operator | operation |
| < | 小于操作符 |
| <= | 小于或等于操作符 |
| > | 大于操作符 |
| >= | 大于或等于操作符 |
| = | 等于操作符 |
| != | 不等于操作符 |
| <> | 不等于操作符 |
| := | 赋值操作符 |
表6 显示的是比较操作符
| operator | operation |
| is null | 如果操作数为null返回true |
| like | 比较字符串值 |
| between | 验证值是否在范围之内 |
| in | 验证操作数在设定的一系列值中 |
表7.8显示的是逻辑操作符
| operator | operation |
| and | 两个条件都必须满足 |
| or | 只要满足两个条件中的一个 |
| not | 取反 |