当前位置:数据库 > Oracle >>

oracle 跳出一个循环的问题

有一个存储过程,其中有两个镶嵌循环,如: for t1 in ..... loop for t2 in .... loop //满足一定条件时跳出t2这个循环,进行t1的下一个循环,应该怎么写 end loop; end loop;
答案:exit跳出循环。SQLSERVER用BREAK
if 跳出循环的条件 then
   exit;
end if; 
或者
exit when 条件(一定是一个返回true或者false的判断条件)
其他:用FOR循环的话没有跳出这个功能
你可以用EXCEPTION处理来跳出,或者GOTO也行,或者把FOR循环改成LOOP循环 for t1 in ..... loop
       for t2 in .... loop
       //满足一定条件时跳出t2这个循环,进行t1的下一个循环,应该怎么写
exit when true;
       end  loop;
end loop; break;? continue Oracle不支持 Break与Continue
Break 使用 EXIT 替换
Continue使用GOTO替换

SQL> DECLARE
  2    testvalue  INT;
  3  BEGIN
  4    testvalue := 0;
  5    WHILE testvalue < 5 LOOP
  6      <<l_Begin_Loop>>
  7      testvalue := testvalue + 1;
  8      IF testvalue = 2 THEN
  9        GOTO l_Begin_Loop;
 10      END IF;
 11      IF testvalue = 4 THEN
 12        EXIT;
 13      END IF;
 14      dbms_output.put_line( TO_CHAR(testvalue) );
 15    END LOOP;
 16  END;
 17  /
1
3
PL/SQL procedure successfully completed.

上一个:oracle count(*),count(1)与count(rowid)区别
下一个:oracle 一个表能放在不同的表空间吗?

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,