1、 PL/SQL概述。
PL/SQL是Oracle对SQL规范的扩展,是一种块结构语言,即构成一个PL/SQL程序的基本单位(过程、函数和无名块)是逻辑块,可包含任何数目的嵌套了快。这种程序结构支持逐步求精方法解决问题。一个块(或子块)将逻辑上相关的说明和语句组合在一起,其形式为:
DECLARE
---说明
BEGIN
---语句序列
EXCEPTION
---例外处理程序
END;
它有以下优点:
l 支持SQL;
l 生产率高;
l 性能好;
l 可称植性;
l 与ORACLE集成.
2、 PL/SQL体系结构
PL/SQL运行系统是种技术,不是一种独立产品,可认为这种技术是PL/SQL块和子程序的一种机,它可接收任何有效的PL/SQL块或子程序。如图所示:
PL/SQL机可执行过程性语句,而将SQL语句发送到ORACLE服务器上的SQL语句执行器。在ORACLE预编译程序或OCI程序中可嵌入无名的PL/SQL块。如果ORACLE具有PROCEDURAL选件,有名的PL/SQL块(子程序)可单独编译,永久地存储在数据库中,准备执行。
3、 PL/SQL基础:
PL/SQL有一字符集、保留字、标点、数据类型、严密语法等,它与SQL有相同表示,现重点介绍。
1)、数据类型:如下表所示
|
| 数据类型 | 子类型 |
纯量类型 | 数值 | BINARY_INTEGER | NATURAL,POSITIVE |
NUMBER | DEC,DECIMAL,DOUBLE PRECISION,PLOAT,INTEGER,INT,NUMERIC,REAL,SMALLINT | ||
字符 | CHAR | CHARACTER,STRING | |
VARCHAR2 | VARCHAR | ||
LONG |
| ||
LONG RAW |
| ||
RAW |
| ||
RAWID |
| ||
逻辑 | BOOLEAN |
| |
日期 | DATE |
| |
组合 类型 | 记录 | RECORD |
|
表 | TABLE |
|
2)、变量和常量
在PL/SQL程序中可将值存储在变量和常量中,当程序执行时,变量的值可以改变,而常量的值不能改变。
3)、程序块式结构:
DECLARE
变量说明部分;
BEGIN
执行语句部分;
[EXCEPTION
例外处理部分;]
END;
4、 控制语句:
分支语句:
IF condition THEN
Sequence_of_statements;
END IF;
IF condition THEN
Sequence_of_statement1;
ELSE
Sequence_of_statement2;
END IF;
IF condition1 THEN
Sequence_of_statement1;
ELSIF condition2 THEN
Sequence_of_statement2;
ELSIF condition3 THEN
Sequence_of_statement3;
END IF;
5、 循环语句:
LOOP
Sequence_of_statements;
IF condition THEN
EXIT;
END IF;
END LOOP;
WHILE condition LOOP
Sequence_of_statements;
END LOOP;
FOR counter INlower_bound..higher_bound LOOP
Sequence_of_statements;
END LOOP;
6、 子程序:
存储过程:
CREATE PROCEDURE 过程名 (参数说明1,参数说明2, 。。。) IS
[局部说明]
BEGIN
执行语句;
END 过程名;
存储函数:
CREATE FUNCTION 函数名 (参数说明1,参数说明2, 。。。)
RETURN 类型 IS
[局部说明]
BEGIN
执行语句;
END 函数名;