求plsql中功能同break,continue 的语句此外,exit和return 有何区别

解决方案 »

  1.   

    exit是退出,而return可以有返回值。(1) LOOP-EXIT-END循环 
    cnt:=1; --在循环开始前,初始化循环计数器 
    loop --第一部分:以循环关键字loop开始循环 
      cnt:=cnt+1; --第二部分:增加循环计数器的值 
      if cnt>=100 then  --测试cnt是否符合退出条件 
          exit;    --满足退出条件,退出循环 
      endif;    --endif与前面的if匹配 
      ... 
      ... 
    Endloop;   --\第三部分:关键字endloop结束循环 
    ... (2) LOOP-EXITWHEN-END循环 
    cnt:=1; --在循环开始前,初始化循环计数器 
    loop --第一部分:以循环关键字loop开始循环 
      cnt:=cnt+1; --第二部分:增加循环计数器的值 
      exit when cnt>=100; --测试cnt是否符合退出条件 
      ... 
      ... 
      ... 
    endloop; --第三部分:关键字endloop结束循环 
    ... (3) WHILE-LOOP-END循环 
    此结构在循环的while部分测试退出条件。 
    -在循环开始前,初始化循环计数器 
    cnt:=1; 
    while cnt<100 loop   --第一部分:在每次执行循环前,while都要检查退出条件 
      ...       --第二部分:循环体内部的可执行代码 
      cnt:=cnt+1;     --增加循环计数器的值以满足退出条件 
      ... 
    Endloop;     --第三部分:关键字endloop结束循环 
    ...
      

  2.   

    exit退出循环;return结束整个处理
      

  3.   

    loop
       begin
         ......
       exception
          when others then
            null;
       end;
    end loop;
    相当与continue,当在循环中出错就回忽略过去继续进行下一次循环
      

  4.   

    其實在Oracle的循環語句中沒有Continue的,如果要達到與SQL Server中的Continue相同的效果,可以在整個循環中使用一個If塊,或使用CASE塊,舉個例子:
    loop
       IF <條件> then
         ......
       ELSE
          NULL;
       END IF;
    end loop;
      

  5.   

    是的,同意楼上的,在循环中加个空操作就相当于Continue了。
    至于break就相当于exit了。