PL/SQL程序设计、流程控制

PL/SQL是 Procedure Language & Structured Query Language 的缩写

PL/SQL是对SQL语言存储过程语言的扩展

PL/SQL程序由三个块组成,即声明部分、执行部分、异常处理部分。

在语句块的声明部分对变量声明,声明一个变量的语法是:
variable_name [ constant ] type [ not null ] [:=value]
其中:
variable_name 为变量名
type 为类型
value 为变量的初值

PL/SQL结构
DECLARE
/* 声明部分: 在此声明PL/SQL用到的变量,类型及游标,以及局部的存储过程和函数 */
BEGIN
/* 执行部分: 过程及SQL 语句 , 即程序的主要部分 */
EXCEPTION
/* 执行异常部分: 错误处理 */
END;

PL/SQL的流程控制语句, 包括如下三类 :
条件语句: IF 语句 CASE语句
循环语句: LOOP语句, EXIT语句
顺序语句: GOTO语句, NULL语句

IF语句的基本形式为 :
IF <布尔表达式> THEN
PL/SQL 和 SQL语句
END IF;

IF <布尔表达式> THEN
PL/SQL 和 SQL语句
ELSE
其它语句
END IF;

IF语句的复杂形式为 :
IF <布尔表达式> THEN
PL/SQL 和 SQL语句
ELSIF < 其它布尔表达式> THEN
其它语句
ELSIF < 其它布尔表达式> THEN
其它语句
…… ……
ELSE
其它语句
END IF;

CASE语句的基本形式为 :
CASE selector
WHEN expression1 THEN result1
WHEN expression2 THEN result2
WHEN expressionN THEN resultN
[ ELSE resultN+1]
END CASE;

循环语句
简单循环语句的一般形式:
LOOP
要执行的语句;
EXIT WHEN <条件语句> /*条件满足,退出循环语句*/
END LOOP;
其中:EXIT WHEN 子句是必须的,否则循环将无法停止。

WHILE 循环语句的一般形式:
WHILE <布尔表达式> LOOP
要执行的语句;
END LOOP;

FOR循环语句的一般形式:
FOR 循环计数器 IN [ REVERSE ] 下限 .. 上限 LOOP
要执行的语句;
END LOOP;
其中:
每循环一次,循环变量自动加1;使用关键字REVERSE,循环变量自动减1
跟在IN REVERSE 后面的数字必须是从小到大的顺序,但不一定是整数,可以是能够转换成整数的变量或表达式
可以使用EXIT WHEN子句退出循环

 综合实例:

 declare
v_no number(4) :=7369; --声明并初始化变量
begin
select sal into v_no from emp where empno=v_no; if v_no>300 then v_no:=100; --if--then
end if; while v_no<=200 --while
loop
v_no := v_no+1;
dbms_output.put_line(v_no);
end loop; for v_no in reverse 0 .. 200--for
loop --loop dbms_output.put_line(v_no); end loop;
end;
上一篇:eclipse 插件编写(一)


下一篇:2018.12.30 poj3734 Blocks(生成函数)