PL/SQL中,使用if关键字作为分之结构的程序起始段。
总体有以下几种分支结构:
1)if condition then statement end if;
2)if condition then statement
else then statement
end if;
3)if condition then statement
elsif condition then statement
...
else then statement
end if;
分别对应于其它语言中的if(){},if(){}else(){},if(){}else if(){}...else{}结构
此外,PL/SQL还提供case关键字作为分支结构的标识段。
case的用法有以下几种:
1)对某个字段进行单值匹配
case column1 when value1 then statement when value2 then statement ... end case;
这种结构类似于其它语言中的switch结构。
2)使用case..when结构来表达if..else条件语法
case when condition then statement when condition then statement ... end case;
2.循环结构
PL/SQL中,具体的循环结构有以下几种:
1)for
for i in rs.first..rs.last loop
end loop;
这种结构在遍历游标指向的集合时,显得简洁而高效,该结构可实现自动管理游标:包括游标的打开、关闭和自动fetch。
示例:
declare cursor c_emp is select * from emp; emp_record emp%rowtype; begin for emp_record in c_emp loop dbms_output.put_line(emp_record.empno); end loop; end;这段PL/SQL程序并未打开游标,也没有使用fetch语句,更没有关闭游标,但是使用for..in结构可以自动隐式完成这些工作,因此简洁高效,且不易出错。
2)loop when
loop exit when (statement) end loop;3)loop while
while (statement)
loop
end loop;
4)goto
loop if (statement) then goto label_name end if; end loop; <<label_name>>在PL/SQL中,可以使用<<label_name>>的形式定义一个标签,使用goto关键字即可让程序在执行时跳转至该标签,从而结束循环体。