【PL/SQL编程】循环语句

时间:2023-03-10 06:29:23
【PL/SQL编程】循环语句

1. loop语句

  loop

    plsql_sentence;

    exit when end_condition_exp;

  end loop;

  loop语句会先执行一次循环体,然后再判断“exit when”关键字后面的条件表达式,如果条件表达式为true,则退出循环体,如果条件表达式为false,则继续执行循环体。 

declare
-- Local variables here
v_sum int := 0;
v_i int := 0;
begin
-- Test statements here
loop
v_i := v_i + 1;
v_sum := v_sum + v_i;
exit when v_i = 100;
end loop;
dbms_output.put_line('1到100的和为:' || v_sum);
end;

2. while语句
  while condition_expression loop

    plsql_sentence;

  end loop;

  执行前判断条件表达式,如条件表达式为True,则执行循环体,如条件表达式为false,则退出循环体。

declare
-- Local variables here
v_sum int := 0;
v_i int := 0;
begin
-- Test statements here
while v_i < 100 loop
v_i := v_i + 1;
v_sum := v_sum + v_i;
end loop;
dbms_output.put_line('1到100的和为:' || v_sum);
end;

3. for语句
  for variable in [reverse] lower_limit .. up_limit loop

    plsql_sentence;

  end loop;

  variable表示一个变量,通常为整数类型,用来作为计数器。

  low_limit表示计算的下线值。当值小于下线值时,退出循环。

  up_limit表示计算的上线值。当值大于上线值时,退出循环。

  reverse表示计数器随循环递减。

declare
-- Local variables here
v_sum int := 0;
begin
-- Test statements here
for v_i in reverse 1 .. 100 loop
v_sum := v_sum + v_i;
end loop;
dbms_output.put_line('1到100的和为:' || v_sum);
end;