流程控制"/>
PL/SQL 流程控制
一.逻辑控制
1.if语句
在PL/SQL中 if语句的格式如下:
IF CONDITION THENLOGIC CODEELSIF THENLOGIC CODE...ELSE LOGIC CODEEND IF;
就是普通的逻辑判断代码,没什么可说的.
常用于实现排序.
例如冒泡排序
2.case when语句
前情提要 case when 语句没什么作用(自我感觉)
在PL/SQL中 case when语句的格式如下:
CASE VARWHEN VALUE1 THEN LOGIC CODE WHEN VALUE2 THEN LOGIC CODE ...ELSE LOGIC CODEEND CASE;
上述这种格式 在case后面跟了 变量名
所以在 when后面判断时 不能跟 表达式 只能跟值
CASEWHEN EXP1 THENLOGIC CODEWHEN EXP2 THENLOGIC CODE...ELSELOGIC CODE
END CASE;
在这种格式中 由于CASE后面没有跟变量名
所以在when做判断的时候 跟的是EXP 而不是VALUE
二.循环语句
1.for循环
似乎不论是哪种编程语言的循环 都会涉及到FOR 循环
提起for循环我们就会想到:
FOR(I;I<.LENGTH;I++);
--不论是C 还是C++ 又或者是JAVA 都是一样的格式
--但是在PL/SQL中 变了
FOR I IN 1..VAULE LOOPLOGIC CODE
END LOOP;
--值得注意的是 在FOR 循环中 I是一个非人为定义的变量
--也就是说 不用在DECLARE 中定义 I NUMBER(5);
--这个循环因子不论叫什么 都不可以自己定义
在PL/SQL 中 也只有FOR 才可以实现多层重复循环
2.loop循环
LOOPEXIT WHEN CONDITION;--这里的循环因子需要自己定义LOGIC CODE
END LOOP;
3.while循环
WHILE CONDITION LOOP
LOGIC CODE
END LOOP;
三.标签
GOTO<A>
--goto标签<<标签名>> -了解
--语法
goto <<标签名>>declare
i number(2);
begini:=1;<<A>>if i>9 thenreturn; --程序结束end if;dbms_output.put_line('goto-'||i);i:=i+1;goto A;
end;--控制循环退出语句
exit/continue 只能使用在循环体内
returnbeginfor i in 1..9 loop if i=3 thenexit; --退出循环end if;dbms_output.put_line('当前循环值:'||i);end loop;dbms_output.put_line('程序结束');
end;beginfor i in 1..9 loop if i=3 thencontinue; --跳过当前循环end if;dbms_output.put_line('当前循环值:'||i);end loop;dbms_output.put_line('程序结束');
end;beginfor i in 1..9 loop if i=3 thenreturn; --程序结束end if;dbms_output.put_line('当前循环值:'||i);end loop;dbms_output.put_line('程序结束');
end;--特殊用法
beginfor i in 1..9 loop return when i=3;dbms_output.put_line('当前循环值:'||i);end loop;dbms_output.put_line('程序结束');
end;beginfor i in 1..9 loopif i=3 thengoto A;end if;dbms_output.put_line('当前循环值:'||i);end loop;<<A>>dbms_output.put_line('程序结束');
end;
更多推荐
PL/SQL 流程控制
发布评论