Oracle PL/SQL退出循环

来源:互联网 发布:原生js 实现swipe效果 编辑:程序博客网 时间:2024/05/16 14:25

   在使用PL/SQL的时候,有时候会有这样的需求,执行动态的SQL,你只需要看循环一次的结果,样例如下:

DECLARE

  V_POWER_GRID_FLAG NUMBER;
   TYPE BUREAU_CODE_T IS TABLE OF VARCHAR2(10);
   V_BUREAU_CODE_T BUREAU_CODE_T := BUREAU_CODE_T('0101', '0102', '0103');
BEGIN
  FOR V_POWER_GRID_FLAG IN 1 .. 2
   LOOP
     FOR I IN V_BUREAU_CODE_T.FIRST .. V_BUREAU_CODE_T.LAST LOOP
       dbms_output.put_line(V_BUREAU_CODE_T(i)||'-------->'||V_POWER_GRID_FLAG);
     END LOOP;
   END LOOP;
END;
0101-------->1
0102-------->1
0103-------->1
0101-------->2
0102-------->2
0103-------->2



DECLARE
  V_POWER_GRID_FLAG NUMBER;
   TYPE BUREAU_CODE_T IS TABLE OF VARCHAR2(10);
   V_BUREAU_CODE_T BUREAU_CODE_T := BUREAU_CODE_T('0101', '0102', '0103');
BEGIN
  <<INNER_LOOP>>
  FOR V_POWER_GRID_FLAG IN 1 .. 2
   LOOP
     FOR I IN V_BUREAU_CODE_T.FIRST .. V_BUREAU_CODE_T.LAST LOOP
      dbms_output.put_line(V_BUREAU_CODE_T(i)||'-------->'||V_POWER_GRID_FLAG);
     END LOOP;
     EXIT INNER_LOOP WHEN(1 = 1);
   END LOOP;
END;
0101-------->1
0102-------->1
0103-------->1
0 0