PL/SQL的流程控制语句包括如下三类:
1>、控制语句:IF语句;
2>、循环语句:LOOP语句,EXIT语句;
3>、顺序语句:GOTO语句,NULL语句。
条件语句
IF <布尔表达式> THEN
PL/SQL和SQL语句
END IF;
IF <布尔表达式> THEN
PL/SQL和SQL
ELSE
其它语句
END 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;
循环
1>、简单循环
LOOP
要执行的语句;
EXIT WHEN <条件语句> /*条件满足,退出循环语句*/
END LOOP;
2>、WHILE循环
WHILE <布尔表达式> LOOP
要执行的语句;
END LOOP;
3>、数字式循环
FOR循环计数器IN(或者REVERSE)下限 .. 上限 LOOP
要执行的语句;
END LOOP;
标号和GOTO
PL/SQL中GOTO语句是无条件跳转到指定的标号去的意思。语法如下:
GOTO label;
... ...
<<label>> /*标号是用<< >>括起来的标识符*/
NULL语句
在PL/SQL程序中,可以使用null语句来说明“不用做任何事情”的意思,相当于一个占位符,可以使某些语句变得有意义,提高程序的可读性。eg:
DECLARE
...
BEGIN
...
IF v_num IS NULL THEN
GOTO print2;
END IF;
...
<<print1>>
NULL; --不需要处理任何数据。
END;