首页 > 技术文章 > PL/SQL 流程控制语句-条件结构,循环结构

likailan 2013-11-17 16:46 原文

条件结构

一、IF-THEN语句

IF-THEN语句是最简单的IF语句。

语法:

IF condition THEN
  Statements
END IF;

例子:

declare
  v_score number := &成绩;
begin
  if v_score >= 60 then
    dbms_output.put_line('合格');
  end if;
end;

 

二、IF-THEN-ELSE语句

与IF-THEN语句相比,在IF-THEN-ELSE语句则给出了在不满足条件时程序的外理情况。

语法:

IF condition THEN
  Statements1
ELSE
  Statements2
END IF;

例子:

declare
  v_score number := &成绩;
begin
  if v_score >= 60 then
    dbms_output.put_line('合格');
  else
    dbms_output.put_line('不合格');
  end if;
end;

 

三、IF-THEN-ELSIF语句

该语句是当存在多个不同条件时使用,注意此时是ELSIF,而不是ELSEIF。

语法:

IF condition1 THEN
  Statements1
ELSIF condition2 THEN
  Statements2
ELSE
  Statements3
END IF;

例子:

declare
  v_score number := &成绩;
begin
  if v_score >= 90 then
    dbms_output.put_line('优秀');
  elsif  v_score >= 60 then
    dbms_output.put_line('合格');
  else
    dbms_output.put_line('不合格');
  end if;
end;

 

四、CASE 语句

CASE语句是在Oracle 9i 版本后引入的控制语句结构。

语法:

CASE variable
  WHEN value1 THEN statements1;
  WHEN value2 THEN statements2;
  ……
  WHEN valuen THEN statementsn;
  [ELSE else_statements;]
END CASE;

例子:

declare
  v_score number := &成绩;
begin
  case v_score
    when 1 then dbms_output.put_line('星期一');
    when 2 then dbms_output.put_line('星期二');
    when 3 then dbms_output.put_line('星期三');
    when 4 then dbms_output.put_line('星期四');
    when 5 then dbms_output.put_line('星期五');
    when 6 then dbms_output.put_line('星期六');
    when 7 then dbms_output.put_line('星期日');
    else dbms_output.put_line('未知');
  end case;
end;

 

循环结构

一、LOOP循环

LOOP循环是最简单的一种循环。需使用 EXIT 语句来退出循环。

语法:

LOOP
  statements;
END LOOP;

例子:

declare
  v_num number := 1;
begin
  loop
    dbms_output.put_line(v_num);
    v_num := v_num+1;
    if v_num>15 then
      exit;
    end if;
  end loop;
end;

 

二、WHILE-LOOP 循环

WHILE-LOOP 循环是在执行循环时,先判断循环条件是否成立,当条件为TRUE时,才开始执行循环体内的语句。

语法:

WHILE condition LOOP
  statements;
END LOOP;

例子:

declare
  v_num number := 1;
begin
  while v_num<=15 loop
    dbms_output.put_line(v_num);
    v_num := v_num+1;
  end loop;
end;

 

三、FOR-LOOP 循环

与WHILE-LOOP 循环相比,FOR-LOOP 循环可以清楚的知道循环的次数,并且FOR 循环还确定了循环的范围。

语法:

FOR loop_count IN [REVERSE] lower_bound..height_bound LOOP
  statements;
END LOOP;

例子:

declare

begin
  for i in 1..15 LOOP
    dbms_output.put_line(i);
  END LOOP;
end;

推荐阅读