【问题标题】:How to exit the loop in oracleoracle如何退出循环
【发布时间】:2016-02-10 04:40:16
【问题描述】:
Declare
var_cnt       number(3):=0;
begin
    loop
        update t_loan_dtl set loan_closure = 'Y' where rownum <10001;
    end loop;
end;

【问题讨论】:

  • 有任何答案可以帮助您解决问题。如果是这样,请接受这个答案。如果您想出了不同的解决方案,请发布并接受它。如果您的问题未解决,请更新问题并指出剩余问题。重点不仅仅是让已解决的问题处于开放状态。已回答的问题有助于未来的提问者遇到同样的问题。

标签: plsql plsqldeveloper


【解决方案1】:
  1. 简单的退出

    循环 - 做点什么; 出口; 结束循环;

  2. 有条件退出

    循环 - 做点什么; “条件”时退出; 结束循环;

3.使用游标变量退出

 exit when v_cursor%notfound;

【讨论】:

    【解决方案2】:

    您可以尝试使用EXIT statament

    EXIT 语句跳出循环。 EXIT 语句有两个 形式:无条件的 EXIT 和有条件的 EXIT WHEN。和 无论哪种形式,您都可以命名要退出的循环。

    【讨论】:

      【解决方案3】:

      你可以在循环中使用EXIT

      我在下面的示例中使用了employees 作为Table,并在操作中使用了Cursor

       DECLARE
       v_employees employees%ROWTYPE;  -- declare record variable
        CURSOR c1 is SELECT * FROM employees;
       BEGIN
       OPEN c1; -- open the cursor before fetching
      -- An entire row is fetched into the v_employees record
       FOR i IN 1..10 LOOP
      FETCH c1 INTO v_employees;
      EXIT WHEN c1%NOTFOUND;
      -- process data here
      END LOOP;
      CLOSE c1;
      END;
       /
      

      【讨论】:

      • 什么是employees? OP没有提到任何这样的表?为什么是光标?
      • 我刚刚在这里给出了一个如何退出循环的示例
      • 那么您需要在回答中明确提及这一点。否则,您的意图会变得非常混乱!
      【解决方案4】:

      这完全取决于您何时想要退出循环。如果你只想运行一次,那么就不需要循环语句,如果你想运行 100 次,然后增加计数器并添加一个 if 条件,当达到计数时退出。

      【讨论】:

        【解决方案5】:
        loop
         if(var_cnt>=10001) then
          exit;
         end if;
         var_cnt:=var_cnt+1;
        end loop;
        

        【讨论】:

        • 请不要只发布代码作为答案,还要解释您的代码的作用以及它如何解决问题的问题。带有解释的答案通常更有帮助,质量更高,更有可能吸引投票。
        • 代码很简单。当变量达到10000时,循环退出
        猜你喜欢
        • 1970-01-01
        • 2012-11-04
        • 1970-01-01
        • 1970-01-01
        • 2015-01-18
        • 2016-10-09
        • 2013-09-11
        • 1970-01-01
        • 2023-04-08
        相关资源
        最近更新 更多