PL/SQL程序控制
分支结构
分支结构主要是IF和CASE语句
IF语句语法如下:
IF语句:
IF 判断条件 THEN
满足条件时的执行语句;
END IF;
IF…ELSE语句:
IF 判断条件 THEN
满足条件时的执行语句;
ELSE
不满足条件时执行的语句;
END IF;
IF…ELSIF…ELSE语句(注意是ELSIF不是ELSEIF):
IF 判断条件 THEN
满足条件时的执行语句;
ELSIF 判断条件2 THEN
满足条件2时执行的语句;
…
ELSE
所有条件不满足时执行的语句;
END IF;
CASE语句,这是一种多条件的判断语句,功能和IF…ELSIF…ELSE类似,和java里的switch语法基本上一样,其语法如下:
CASE [变量]
WHEN[值|表达式] THEN
执行语句块;
WHEN[值|表达式] THEN
执行语句块;
WHEN[值|表达式] THEN
执行语句块;
……
ELSE
条件都不满足时的执行语句块
END CASE;
循环结构
在PL/SQL中循环结构定义了两种:LOOP循环、FOR循环(就是JAVA的while循环和for循环= =)
LOOP循环语法:
LOOP
循环执行的语句块;
EXIT WHEN 循环结束条件;
循环结束条件修改
END LOOP;
WHILE…LOOP循环语法:
WHILE(循环结束条件)LOOP
循环执行的语句块;
循环结束条件修改;
END LOOP;
FOR循环语法:
FOR 循环索引 IN [REVERSE] 循环区域下限..循环区域上限 LOOP
循环执行的语句块
END LOOP;
循环控制
在正常循环的操作之中,如果需要结束循环或是退出当前循环,则可以使用EXIT与CONTINUE语句完成。一般这两种控制语句都要结合分支语句进行判断
EXIT类似于java中的break,continue就是一样的。EXIT用于直接跳出循环。CONTINUE用于跳过当前这次循环,执行下一次循环。
PL/SQL实现九九乘法表:
DECLARE v_i NUMBER := 1; v_j NUMBER := 1; BEGIN FOR v_i IN 1..9 LOOP FOR v_j IN 1..v_i LOOP DBMS_OUTPUT.PUT(v_j||'*'||v_i||'='||v_j*v_i||' '); END LOOP; DBMS_OUTPUT.NEW_LINE; END LOOP; END; /