for XXX in YYY loopend loop;
在这个循环里怎样跳过当前循环,执行下一次循环,类似于java和c#里的continue;

解决方案 »

  1.   

    SQL> Declare
      2     l_Continue Boolean Default True;
      3  Begin
      4     For i In 1 .. 10 Loop
      5        If i = 5 Then
      6           l_Continue := False;
      7        End If;
      8
      9        If l_Continue Then
     10           Insert Into T (Id, Name) Values (i, 'Loop count');
     11        End If;
     12     End Loop;
     13
     14     Insert Into T (Id, Name) Values (Null, 'Done!');
     15  End;没有CONTINUE,只能自己判断循环体是否需要执行
      

  2.   

    基本要靠if语句或者是goto+标签,如果里面还有循环,也可以exit+标签
      

  3.   

    在循环中,是绝对不建议强制中 EXIT 的。
    如果你确定在你的 FORLOOP。。END LOOP;中途会条出,就不要用FOR。专家建议用WHILE,declare
      insert_fail BOOLEAN;  /*用来判断你的条件的,如果FALSE,就条出循环*/
      I NUMBER(2);          /*用来保存你的FOR XXX in YYY 的YYY*/
    BEGIN
      I := 1;
      WHILE insert_fail
      loop
         INSERT INTO T_V......;
         I := INC(I);   
         if i = 5 + x then
           insert_fail := false;
      end loop;
    END;
      

  4.   

    to:su_fisher(费沙)
    我指的是跳出当前循环,不是说跳出整个循环