PL/SQL
块结构
DECLARE
声明部分
BEGIN
可执行部分
EXCEPTION
异常处理部分
END;
例:
首先我们看一个简单之例子,下面这个例子是统计从1至100的总和.
一、 变量
1. 内置数据类型
A. 标量
a) NUMBER
Datatype | Range | Subtypes | description |
BINARY_INTEGER | [-214748364, 2147483647] | NATURAL | 用于存储单字节整数。 |
NUMBER | [1.0E-130,1.0E126) | DEC | 存储数字值,包括整数和浮点数。可以选择精度和刻度方式,语法: |
PLS_INTEGER | [-214748364, 2147483647] |
| 与BINARY_INTEGER基本相同,但采用机器运算时,PLS_INTEGER提供更好的性能 。 |
b) CHARACTER
datatype | rang | subtype | description |
CHAR | 最大长度32767字节 | CHARACTER | 存储定长字符串,如果长度没有确定,缺省是1 |
LONG | 最大长度2147483647字节 | 存储可变长度字符串 | |
RAW | 最大长度32767字节 | 用于存储二进制数据和字节字符串,当在两个数据库之间进行传递时,RAW数据不在字符集之间进行转换。 | |
LONGRAW | 最大长度2147483647 | 与LONG数据类型相似,同样他也不能在字符集之间进行转换。 | |
ROWID | 18个字节 | 与数据库ROWID伪列类型相同,能够存储一个行标示符,可以将行标示符看作数据库中每一行的唯一键值。 | |
VARCHAR2 | 最大长度32767字节 | STRINGVARCHAR | 与VARCHAR数据类型相似,存储可变长度的字符串。声明方法与VARCHAR相同 |
c) DATE
datatype | range | description |
DATE | 01/01,4712 BC 到12/31, 9999 AD | 存储固定长的日期和时间值,日期值中包含时间 |
d) BOOLEAN
只能在变量中使用,不能作为表的字段类型
datatype | range | description |
BOOLEAN | TRUE/FALSE | 存储逻辑值TRUE或FALSE,无参数 |
B. 复合
RECORD
VARRAY
NESTED TABLE
C. 引用
REF CURSOR
REF 操作符
D. LOB
LOB( 大对象 ,Large object) 数据类型用于存储类似图像,声音这样的大型数据对象, LOB 数据对象可以是二进制数据也可以是字符数据,其最大长度不超过 4G 。 LOB 数据类型支持任意访 问方式, LONG 只支持顺序访问方式。 LOB 存储在一个单独的位置上,同时一个 "LOB 定位符 "(LOB locator) 存储在原始的表中,该定位符是一个指向实际数据的指针。在 PL/SQL 中操作 LOB 数据对象使用 ORACLE 提供的包 DBMS_LOB.LOB 数据类型可分为以下四类:
. BFILE
. BLOB
. CLOB
. NCLOB