PL/SQL控制结构

1:选择结构–IF

<1.1>:基本格式

IF condition THEN
    statement
END IF;

条件成立时,执行语句

事例:

declare
  v_height number;
begin
  v_height := &input;
  IF v_height > 160 THEN
    dbms_output.put_line('身高大于160');
  END IF;
end;

<1.2>:选择结构–IF — IF…ELSE

IF condition THEN
   statement1
ELSE
   statement2
END IF;

条件成立时,执行语句1;否则执行语句2

事例:

declare
  v_height number;
begin
  v_height := &input;
  IF v_height > 160 THEN
    dbms_output.put_line('身高大于160');
  ELSE
    dbms_output.put_line('身高小于160');
  END IF;
end;

<1.3>:选择结构–IF — 多分支IF的书写形式

IF condition THEN
          statement1
ELIF condition THEN
    statement2
    …
ELSE
    statement
END IF;

事例:

declare
  v_height number;
begin
  v_height := &input;
  IF v_height = 160 THEN
    dbms_output.put_line('身高等于160');
  ELSIF v_height > 160 THEN
    dbms_output.put_line('身高大于160');
  ELSE
    dbms_output.put_line('身高小于160');
  END IF;
end;

2:选择结构–CASE

<2.1>:CASE简介

Oracle 9i中引入

提供了另外一种分支选择结构

包含两种形式:简单CASE语句、CASE搜索语句

<2.2>:选择结构–CASE —简单CASE语句

语法:

CASE selector
    WHEN value1 THEN v1
    …
    ELSE vn
    END;

事例:

declare
  v_month number;
  v_day   number;
begin
  v_month := &inputmonth;
  v_day   := case v_month
               when 1 then
                31
               when 2 then
                28
               when 3 then
                30
               else
                31
             end;
  dbms_output.put_line(v_month || '月有' || v_day || '天');
end;

<2.3>:选择结构–CASE —CASE搜索语句

语法:

CASE 
    WHEN condition THEN statement1
    …
    ELSE statementn
    END CASE;

事例:

declare
  v_month number;
  v_day   number;
begin
  v_month := &inputmonth;
  case
    when v_month in (1, 3, 5, 7, 9, 11) then
      v_day := 31;
    when v_month in (4, 6, 8, 10, 12) then
      v_day := 30;
    when v_month = 2 then
      v_day := 28;
    else
      v_day := 0;
  end case;
  dbms_output.put_line(v_month || '月有' || v_day || '天');
end;

3:循环结构

<3.1>:循环结构 — LOOP循环

语法:

LOOP
     statement
     [EXIT [WHEN condition]]
END LOOP;

循环执行指定语句,满足条件时退出

事例:

declare
  v_num number := 0;
begin
  loop
    dbms_output.put_line(v_num);
    exit when v_num = 9;
    v_num := v_num + 1;
  end loop;
end;

<3.2>循环结构 — WHILE循环

语法:

WHILE condition
    LOOP
         statement
    END LOOP;

条件成立时,循环执行指定语句

事例:

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

<3.3>:循环结构 — FOR循环

语法:

FOR counter IN min_val..max_val
    LOOP
         statement
    END LOOP;

使用计数器执行循环

事例:

begin
  for v_num in 0 .. 9 loop
    dbms_output.put_line(v_num);
  end loop;
end;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值