Oracle存储过程的endloop,oracle 存储过程loop退出循环,结束当前循环

loop退出循环体:

1. goto next; <> null;

2. exit when boolean表达式;

示例:

CREATE OR REPLACE PROCEDURE pro_end_loop(i_num NUMBER) AS

v_ind NUMBER DEFAULT 1;

v_num NUMBER;

BEGIN

v_num := i_num;

dbms_output.put_line('i_num='||i_num);

-- 1. 使用exit when boolean表达式 退出循环

LOOP

--v_ind值为5时, 退出循环体

EXIT WHEN v_ind =5;

v_ind := v_ind + 1;

dbms_output.put_line('v_ind='||v_ind||', i_num='||i_num);

END LOOP;

-- 2.使用goto next

LOOP

v_ind := v_ind + 1;

IF v_ind =10 THEN

-- v_ind值为10时, 流程跳转到<>的位置

GOTO NEXT;

END IF;

END LOOP;

dbms_output.put_line('leval loop');

--后面的null必须, next后面需要跟一个语句

<> NULL;

dbms_output.put_line('leval loop to next');

END pro_end_loop;

loop结束当前循环,开始下一轮循环

1. continue (测试数据库为12c)

示例:

CREATE OR REPLACE PROCEDURE pro_end_loop(i_num NUMBER) AS

v_ind NUMBER DEFAULT 1;

v_num NUMBER;

BEGIN

v_num := i_num;

dbms_output.put_line('i_num='||i_num);

dbms_output.put_line('使用continue中断当前循环,开始下一个循环');

LOOP

dbms_output.put_line('into loop continue before');

v_ind := v_ind + 1;

IF v_ind =3 THEN

dbms_output.put_line('continue block');

-- v_ind的值为3时, 结束当前循环, 进入下一次循环

CONTINUE;

END IF;

dbms_output.put_line('into loop continue after');

END LOOP;

END pro_end_loop;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值