Oracle存储过程中loop、for循环的用法

基表数据:
在这里插入图片描述

创建存储过程:

在这里插入图片描述

create or replace procedure PRO_LOOP_EMP is
       --声明游标
       v_emp emp%rowtype;
       --让游标变量c_emps指向一个动态select查询的结果集
       cursor c_emps is select * from emp where rownum <= 10;
begin
  --打开游标变量c_emps
  open c_emps;
       --循环开始
       loop
         --需要显式声明游标,显式打开、关闭游标
         fetch c_emps into v_emp;
         exit when c_emps%notfound;
              if v_emp.ENAME = 'SMITH' then
                 dbms_output.put_line('史密斯' || ' - ' || v_emp.JOB);
              elsif v_emp.ENAME = 'CLARK' then
                 dbms_output.put_line('克拉克' || ' - ' || v_emp.JOB);
              else
                 dbms_output.put_line(v_emp.ENAME || ' - ' || v_emp.JOB);
              end if;
       --循环结束
       end loop;
  --关闭游标变量c_emps
  close c_emps;
end PRO_LOOP_EMP;
create or replace procedure PRO_FOR_EMP is
       --让游标变量c_emps指向一个动态select查询的结果集
       cursor c_emps is select * from emp where rownum <= 10;
begin
       --循环开始
       for e in c_emps loop
           if e.ENAME = 'JACK' then
                dbms_output.put_line('杰克' || ' - ' || e.JOB);
           elsif e.ENAME = 'CLARK' then
                dbms_output.put_line('克拉克' || ' - ' || e.JOB);
           else
                dbms_output.put_line(e.ENAME || ' - ' || e.JOB);
           end if;
      --循环结束
      end loop;
end PRO_FOR_EMP;

调用存储过程:

在这里插入图片描述

在这里插入图片描述

begin
  pro_loop_emp;
end;
begin
  PRO_FOR_EMP;
end;
  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值