第3章oreaclePL/SQL程序结构控制

oreaclePL/SQL程序结构控制

总结:

PL/SQL程序流程的控制结构,包括条件控制,循环控制,顺序控制以及异常处理可以控制程序流程.
PL/SQL中的【条件控制】语句有IF语句、CASE语句、
PLSQL中的【循环控制】语句有LOOP语句、WHILE语句和FOR语句.
当PL/SQL中发生错误时、不管是系统错误、还是应用错误,都会抛出一个异常,此时当前PL/SQL块执行部分的处理就会终止,程序流程就会转到当前块的异常处理部分来处理异常. 异常处理完成后,程序就马上跳出PL/SQL块。
PL/SQL异常分为系统异常和自定义异常两只类型
异常处理的流程包括定义异常、抛出异常和处理异常三个步骤。
异常的定义可以通过exeception关键字定义,此外还可以通过:异常名exeception_int 和exeception关键字来定义
使用raise语句可以抛出自定义异常或系统异常.而使用Oreacle的内置过程处理抛出的异常,我们必须在异常处理部分编写异常处理器。
下面详细写下用法:
条件控制:
if 条件1 then
如果条件1为真就返回ture
elsif 条件2 then
如果条件1为假就执行条件2返回true
else
以上条件都不为真就执行else语句
end if;
CASE 语句和CASE表达式:
case
when 10 then
如果等于10的条件为真就是true
when 20 then
如果等于20的条件为真就是true
when 30 then
如果等于30的条件为真就是true
end case;
CASE第二中表达式:
case
when 10 then
else
如果条件10不成立就执行else中的语句
end;

循环控制:

基本循环
LOOP
v_int :=v_int+1;
exit when v_nt>15; 循环退出条件必须:exit when关键字
end loop;

while循环

只有条件为trun的时候才执行体内的语句
when 条件1 loop
条件为真的是才执行循环体内的语句
end loop;

for循环:

for i变量 in 1..100循环 loop
dbms_output.put_line(‘i’);
end loop;

异常处理:

定义异常
declare
v-info int exeception; 定义异常
v_info1 int exeception; 抛出异常
begin
raise v_info1 抛出
exception
when others then
dbms_out.put_line(‘定义的异常others异常的父类关键字’);
end;
exeption
when v_info1 then
dbms_out.put_line(‘抛出v_info1异常处理’);
end;

系统异常

人为抛出的系统异常raize_pplication_error关键字
declare
begin
if 条件1 then
raize_pplication_error(-20001,’该部门不存在!’);
end if;
end;