PL/SQL 的基本控制结构主要包括以下三种:
顺序结构 条件结构 循环结构
1,条件结构
(1)IF条件判断逻辑结构主要有以下三种方式:
表达式一,IF condition THEN statement END IF条件真执行statement 假执行END IF后的语句
表达式二,IF condition TNEN statement1 ELSE statement2 END IF 条件真执行THEN后的假执行ELSE后的
表达式三,
IF condition1 THEN statement1 ELSEIF condition2 THEN statement2 ELSE statement3 END IF
该表达式的功能为,如果IF后的条件成立,执行THEN后面的语句,否则判断ELSEIF 后面的条件,条件成立执行第二个THEN 后面的语句,否则执行ELSE后的语句,这是条件语句嵌套。IF 语句还可以嵌套。
IF 实例:
IF gonhng>10 then
gongzi : = gongzi * 1.3;
ELSEIF gongling>5 THEN
gongzi := gongzi * 1.3;
ELSE
gongzi:= gongzi * 1.1;
END IF ;
(2),CASE 表达式,格式如下:
CASE 变量
WHEN 表达式1 THEN 值 1
WHEN 表达式2 THEN 值2
WHEN 表达式3 THEN 值3
ELSE 值4
END;
CASE 语句的功能:首先设定变量的值作为条件,然后顺序检查表达式,一旦从中找到与条件匹配的表达式值,则停止CASE语句的处理
2,循环控制
(1),LOOP ......EXIT......END循环控制语句,例子:
X:= 100;
LOOP
X:=X + 10;
IF X> 1000 THEN
EXIT;
END IF
END LOOP;
Y:=X; // 此时Y的值是1010 或者
(2)WHILE......LOOP 循环控制语句。WHILE ... LOOP 有一个条件与循环想联系,如果条件为TRUE 则执行循环体内的语句,如为FALSE则循环结束。 例子:、
X:= 100;
WHILE X<=1000 LOOP
X:= X+ 10;
END LOOP;
Y = X;
(3) FOR ... LOOP 循环控制语句。 例子:
X:= 100;
FOR v-counter IN 1..1. LOOP
X:=X + 10;
END LOOP
Y:=X; //如果要退出FOR循环则可以用EXIT 语句
3,GOTO 语句:格式如:GOTO LABLE;执行GOTO 语句时,控制会立即转到由标签标记的语句。在PL/SQL 中对于GOTO 有一些限制, 对于块,循环,IF语句而言,从外层跳转到内层是非法的。 NULL是一个合法执行语句。
4,嵌套,程序内部有一个程序块,这种情况称为嵌套,嵌套要注意的是变量,定义在最外面的变量可在所有子程序中使用子程序中的不能在外面的父块中使用。