PL/SQL–循环控制语句
判断语句
--if..else--
declare
v_age number not null := 50;
begin
if 0 < v_age and v_age < 18 then
dbms_output.put_line('儿童');
elsif 18 <= v_age and v_age <= 30 then
dbms_output.put_line('少年');
elsif 30 <= v_age and v_age <= 60 then
dbms_output.put_line('成年');
else
dbms_output.put_line('老年');
end if;
end;
--case..when--
declare
v_age number not null := 50;
begin
case
when 0 < v_age and v_age < 18 then dbms_output.put_line('儿童');
when 18 <= v_age and v_age <= 30 then dbms_output.put_line('少年');
when 30 <= v_age and v_age <= 60 then dbms_output.put_line('成年');
else dbms_output.put_line('老年');
end case;
end;
基本循环
declare
v_param number default 10;
begin
loop
dbms_output.put_line(v_param);
v_param := v_param-1;
exit when v_param < 0;
end loop;
end;
while循环
declare
v_param number default 10;
begin
while v_param > 0 loop
dbms_output.put_line(v_param);
v_param := v_param-1;
end loop;
end;
FOR循环
declare
v_param number default 10;
begin
for v_param in 0..10 loop
dbms_output.put_line(v_param);
end loop;
end;
--for循环..select语句----------------
declare
--下面两句添加上依然是对的,可以说明for后面的那个变量每次都会自动初始化;
--emp_param varchar2(10);
--emp_param employees%rowtype;
begin
for emp_param in
(select salary
from employees) loop
dbms_output.put_line(emp_param.salary);
end loop;
end;
嵌套循环
declare
v_param number default 10;
begin
<<outterLoop>>
loop
exit when v_param < 0;
v_param := v_param - 1;
<<innerLoop>> --似乎没有什么卵用
loop
exit when v_param < 2;
dbms_output.put_line(v_param);
v_param := v_param -1;
end loop innerLoop;
end loop outterLoop;
end;