在oracle的循环中退出迭代

时间:2014-01-28 13:53:29

标签: sql oracle oracle11g oracle-sqldeveloper

我有一个程序,我使用游标进行循环。当其中一个条件转变时,我想退出循环一次迭代。我的程序:

  CREATE OR REPLACE
 PROCEDURE FIX_DIMS_DOC_PROD_DATA
   AS
Tempcount      VARCHAR(8):=1;

 CURSOR wo_list
 IS
SELECT A,b,c
FROM TAble A,
  Table B,
  Table E
WHERE B.tempid = A.PYID
AND NOT EXISTS
  (SELECT 1
  FROM table C
  WHERE C.tempid1 = B.tempid
  AND C.Doc_Type_Id    = A.Documenttypeid
  )
      AND E.Doc_Id = A.Documenttypeid;
       BEGIN
     FOR DIMS_DOC_REC IN wo_list
     LOOP

 BEGIN

        EXIT  WHEN (DIMS_DOC_REC.A1 IS NOT NULL OR               
     DIMS_DOC_REC.A2 IS NOT NULL);
 DO SOMETHING;
   END;
    END LOOP;
     END;

现在当我使用exit命令时,它直接退出循环,我只想退出迭代。

请建议!

1 个答案:

答案 0 :(得分:3)

使用continue关键字跳过当前迭代的其余部分。可以找到更多信息here