FOR i IN (SELECT loginid
                  FROM cet_taskinfo 
                 WHERE 
    itemid = vitemid
                   AND n_queue > 0
                   AND stage = 'Z'
                   AND activetime <= SYSDATE - vofftime/1440
   AND groupid = '0'
                   AND ROWNUM <= 100 ORDER BY DBMS_RANDOM.random) LOOP 
         vsncount := vsncount + 1;
        vgetloginid:=i.loginid;
        Exit vgetloginid is not null;    ---请问这句能否跳出for循环 ?谢谢
      END LOOP; 

解决方案 »

  1.   

     Exit when vgetloginid is not null;    ---请问这句能否跳出for循环 ?谢谢 
      

  2.   

    Exit when vgetloginid is not null;  这种语法是可以的
      

  3.   


    FOR i IN (SELECT 
              loginid 
              FROM 
              cet_taskinfo  
              WHERE  
                itemid = vitemid 
                AND  n_queue > 0 
                AND   stage = 'Z' 
                AND    activetime  <= SYSDATE - vofftime/1440 
                AND    groupid = '0' 
                AND    ROWNUM  <= 100 ORDER BY DBMS_RANDOM.random
              ) LOOP       vsncount := vsncount + 1; 
         vgetloginid:=i.loginid; 
    Exit WHEN vgetloginid is not null;    END LOOP; 
      

  4.   

    应该可以
    SQL> edit
    已写入 file afiedt.buf  1  begin
      2  for x in(select empno from emp) loop
      3  dbms_output.put_line(x.empno);
      4  exit when x.empno is not null;
      5  end loop;
      6* end;
    SQL> /PL/SQL 过程已成功完成。SQL> set serveroutput on
    SQL> /
    7369PL/SQL 过程已成功完成。SQL> edit
    已写入 file afiedt.buf  1  begin
      2  for x in(select empno from emp) loop
      3  dbms_output.put_line(x.empno);
      4  /*exit when x.empno is not null;*/
      5  end loop;
      6* end;
    SQL> /
    7369
    7499
    7521
    7566
    7654
    7698
    7782
    7788
    7839
    7844
    7876
    7900
    7902
    7934PL/SQL 过程已成功完成。SQL>