oracle存储过程中return和exit区别

create or replace procedure Test5(o_cellphone in varchar2) is

  v_cellphone cc_quiz_stat.cellphone %type;

  v_name      cc_quiz_stat %rowtype;

  v_state     cc_quiz_stat.state %type;

begin

  declare

    cursor cur_cc is

      select * from cc_quiz_stat;

    cursor cur_jc(v_n varchar2) is

      select state from cc_quiz_stat;

  begin

    open cur_cc;

    loop

      fetch cur_cc

        into v_name;

      exit when cur_cc%notfound;

      open cur_jc(o_cellphone);

      loop

        fetch cur_jc

          into v_state;

        exit when cur_jc %notfound;

        if (o_cellphone = v_name.cellphone) then

         return;

        else

          dbms_output.put_line('手机号' || v_name.cellphone || '省份' ||

                               v_state);

        end if;

      end loop;

      close cur_jc;

    

    end loop;

    close cur_cc;

  end;

end Test5;

执行结果

手机号18900000000省份全国

手机号18900000000省份南京

手机号18900000000省份天津

手机号18900000000省份 上海

手机号18900000000省份北京

create or replace procedure Test5(o_cellphone in varchar2) is

  v_cellphone cc_quiz_stat.cellphone %type;

  v_name      cc_quiz_stat %rowtype;

  v_state     cc_quiz_stat.state %type;

begin

  declare

    cursor cur_cc is

      select * from cc_quiz_stat;

    cursor cur_jc(v_n varchar2) is

      select state from cc_quiz_stat;

  begin

    open cur_cc;

    loop

      fetch cur_cc

        into v_name;

      exit when cur_cc%notfound;

      open cur_jc(o_cellphone);

      loop

        fetch cur_jc

          into v_state;

        exit when cur_jc %notfound;

        if (o_cellphone = v_name.cellphone) then

         exit;

        else

          dbms_output.put_line('手机号' || v_name.cellphone || '省份' ||

                               v_state);

        end if;

      end loop;

      close cur_jc;

    

    end loop;

    close cur_cc;

  end;

end Test5;

执行结果

手机号18900000000省份全国

手机号18900000000省份南京

手机号18900000000省份天津

手机号18900000000省份 上海

手机号18900000000省份北京

手机号18900000002省份全国

手机号18900000002省份南京

手机号18900000002省份天津

手机号18900000002省份 上海

手机号18900000002省份北京

手机号18900000003省份全国

手机号18900000003省份南京

手机号18900000003省份天津

手机号18900000003省份 上海

手机号18900000003省份北京

手机号18900000004省份全国

手机号18900000004省份南京

手机号18900000004省份天津

手机号18900000004省份 上海

手机号18900000004省份北京

return 跳出整个循环,本循环后面的不再执行,

exit 跳出本次循环,下次继续执行本次循环

猜你喜欢

转载自blog.csdn.net/dream_ling/article/details/81182660
今日推荐