暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 迭代控制 ● 第一部分

自学Oracle 2019-02-26
521

/*loop迭代*/

<<loop_exit>>

DECLARE

   v_id   test01.id%TYPE := &v_id;

BEGIN

   LOOP

      v_id := v_id + 1;

      IF (v_id = id_test01.CURRVAL)

      THEN

         EXIT;

      END IF;

   END LOOP;

   DBMS_OUTPUT.put_line (id_test01.CURRVAL); 

  DBMS_OUTPUT.put_line (v_id);

END loop_exit;

/*loop_exit_when迭代*/

<<loop_exit_when>>

DECLARE

   v_id   test01.id%TYPE := &v_id;

BEGIN

   LOOP

      v_id := v_id + 1;

      EXIT WHEN v_id = id_test01.CURRVAL;

      DBMS_OUTPUT.put_line (v_id);

   END LOOP;

   DBMS_OUTPUT.put_line (id_test01.CURRVAL);

END loop_exit_when;

/* while_exit迭代 */

<<while_exit>>

DECLARE

   v_id   test01.id%TYPE := &v_id;

BEGIN

   WHILE v_id < id_test01.CURRVAL

   LOOP

      v_id := v_id + 1;

      DBMS_OUTPUT.put_line (v_id);

   END LOOP;

END while_exit;

/* while_exit_when迭代 */

<<while_exit_when>>

DECLARE

   v_id   test01.id%TYPE := &v_id;

BEGIN

   WHILE v_id < id_test01.CURRVAL

   LOOP

      v_id := v_id + 1;

      exit when v_id=id_test01.CURRVAL-1;

      DBMS_OUTPUT.put_line (v_id);

   END LOOP;

END while_exit_when;


for 循环 数值型循环

/* v_id 是隐含定义的索引变量,没必要再声明部分定义 ,v_id会隐式地递增*/

<<for_in>>

DECLARE

BEGIN

   FOR v_id IN 1 .. 6

   LOOP

      DBMS_OUTPUT.put_line (v_id);

   END LOOP;

END for_in;

/*for_in_reverse逆序 */

<<for_in_reverse>>

DECLARE

BEGIN

   FOR v_id IN reverse 1 .. 6

   LOOP

      DBMS_OUTPUT.put_line (v_id);

   END LOOP;

END for_in_reverse;


本公众号是个人学习工作笔记,希望大家发现问题能及时和我本人沟通,希望你与我共同成长。个人微信zgjt12306。



 

欢迎关注“自学Oracle”


文章转载自自学Oracle,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论