PL/SQL编程的控制结构和循环结构

控制结构

if

①if 条件 then 表达式 end if;
例:

begin
 if 1= 1 then dbms_output.put_line('yes'); end if;
end;
/

② if 条件1 then 表达式1
elsif 条件2 then 表达式2

elsif 条件n then 表达式n
else 表达式 end if;

类似于 if 与 elseif 组合,注意这里是elsif
例:

declare
  v_sal emp.sal%type;
  v_result varchar2(8);
begin
  select sal into v_sal from emp where empno = &empno;
  if v_sal < 1500 then v_result := '低工资' ;
  elsif v_sal < 3000 then v_result := '正常工资';
  else v_result := '高工资'; end if;
  dbms_output.put_line(v_result);
exception
  when no_data_found then
     dbms_output.put_line('员工不存在');
end;
/

case

① case 表达式
when 值1 then 表达式1
when 值2 then 表达式2

else 表达式
end case;
这样用法类似于开关结构(switch)就不举例了

② case
when 条件1 then 表达式1
when 条件2 then 表达式2

when 条件n then 表达式n
else 表达式
end case;

例:

declare
  v_sal emp.sal%type;
  v_result varchar2(8);

begin
  select sal into v_sal from emp where empno = &empno;
  case 
  when v_sal < 1500 then v_result := '低工资';
  when v_sal > 1500 and v_sal <3000 then v_result := '一般工资';
  else v_result := '高工资'; end case;
  dbms_output.put_line(v_result);
exception
  when no_data_found then
     dbms_output.put_line('员工不存在');
end;
/

注:表达式中 的语句该加分号的一定要加!!!


循环结构

loop,while,for。以后都用1到100的和为例

①loop:

declare
  v_sum int:= 0;
  v_i int:= 1;
begin
  loop
    v_sum := v_sum + v_i;
    v_i := v_i +1;
    exit when v_i = 101;
  end loop;
dbms_output.put_line(v_sum);
end;
/

exit when 后面表示退出循环的条件

②while

declare
  v_sum int:= 0;
  v_i int:= 1;
begin
  while v_i < 101 loop
    v_sum := v_sum + v_i;
    v_i := v_i +1;
  end loop;
dbms_output.put_line(v_sum);
end;
/

③for

declare
  v_sum int:= 0;
begin
  for v_i in 1..100 loop
    v_sum := v_sum + v_i;
  end loop;
dbms_output.put_line(v_sum);
end;
/

for循环适合用于确定循环次数的情况,而while与loop适合不确定循环次数的情况。(老生常谈咯~~)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值