程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle循環中的EXIT、RETURN、CONTINUE解密,oracleexit

Oracle循環中的EXIT、RETURN、CONTINUE解密,oracleexit

編輯:Oracle教程

Oracle循環中的EXIT、RETURN、CONTINUE解密,oracleexit


有時候編寫Oracle中用游標等信息去循環處理邏輯的時候,對EXIT、RETURN、CONTINUE很容易搞混淆,網上搜了資料也不是很清楚,所以本人自己寫了一小段代碼測試了這三種用法。案例代碼如下:

PROCEDURE P_TASK IS
  BEGIN
    FOR MY_CU IN (SELECT SPBH, SPMCH FROM FUCM) LOOP
      FOR MY IN (SELECT SPBH, SPMCH FROM FUCM) LOOP
        IF MY_CU.SPBH = 'AAA' THEN
          RETURN;
          --exit;
          --continue;
        ELSIF MY.SPBH = 'BBB' THEN
          INSERT INTO FUCM_JG (SPBH, SPMCH) VALUES ('123', '123');
        ELSE
          INSERT INTO FUCM_JG (SPBH, SPMCH) VALUES ('222', '222');
        END IF;
        INSERT INTO FUCM_JG (SPBH, SPMCH) VALUES ('333', '333');
      END LOOP;
    END LOOP;
    INSERT INTO FUCM_JG (SPBH, SPMCH) VALUES ('444', '444');
  END P_TASK;

  

案例測試得到結果如下(分析的結果中注意本次循環和本循環的區別。本次循環是本循環執行的這次循環):

第一種:使用RETURN的時候,直接跳出存儲過程或者函數

第二種:使用EXIT的時候,跳出本循環轉而執行本循環的上一級循環的下一次循環。就此案例而言MY_CU.SPBH = 'AAA'為真的時候,直接跳出MY循環轉而去執行MY_CU的下一次循環

第三種:使用CONTINUE的時候,本次循環後面的代碼部分不再執行,轉而執行本循環的下一次循環。就此案例而言MY_CU.SPBH = 'AAA'為真的時候,後面的代碼不執行,繼續MY的下一次循環

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved