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块 |
|
PL/SQL机
|
|
PL/SQL块 |
|
过程性语句 执行器 |
|
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、 循环语句:
Sequence_of_statements;
IF condition THEN
EXIT;
END IF;
END
WHILE condition
Sequence_of_statements;
END
FOR counter IN lower_bound..higher_bound
Sequence_of_statements;
END
6、 子程序:
存储过程:
CREATE PROCEDURE 过程名 (参数说明1,参数说明2, 。。。) IS
[局部说明]
BEGIN
执行语句;
END 过程名;
存储函数:
CREATE FUNCTION 函数名 (参数说明1,参数说明2, 。。。)
RETURN 类型 IS
[局部说明]
BEGIN
执行语句;
END 函数名;
浙公网安备 33010602011771号