PL/SQLループ

目次

1.FORループ

-- FOR ループに関する注意:

-- LOOPループ

-- WHILE ループ

-- 要約: 

チップ:

ループから抜け出す命令


1.FORループ
FOR 循环变量 IN 循环下限..循环上线 LOOP
  -- 循环变量可以用任意的字母或者单词去替代
  循环执行的逻辑题
  END LOOP;

1~100までの累積値を計算します。

DECLARE
V_TEXT VARCHAR2(1000):='';
BEGIN
  FOR X IN 1..10 LOOP
    V_TEXT:=V_TEXT || 'O_0 ';
    DBMS_OUTPUT.put_line(V_TEXT);
    END LOOP;
END;
-- FOR ループに関する注意:

1. ループ変数はループ本体内でのみ参照可能
2. ループ変数には毎サイクル IN の上限値と下限値の間の値のみを代入でき、他のワードを使用して再代入することはできない 3. ワードの欠落はでき
ないループ本体の中央。ループを検証したい場合は、それらに NULL を追加できます。

BEGIN
FOR X IN 1..20 LOOP
  NULL;
  END LOOP;
END; 
-- LOOPループ
DECLARE 
V_SUM NUMBER:=0;
BEGIN
LOOP 
  V_SUM:=V_SUM+1;
  dbms_output.put_line(V_SUM);
  EXIT WHEN V_SUM=5;
  -- 如果这里不设定跳出循环条件,会陷入死循环
   dbms_output.put_line(V_SUM);
   END LOOP;
END;
-- WHILE ループ
DECLARE 
V_SUM NUMBER:=0;
BEGIN
WHILE V_SUM < 20 LOOP
    DBMS_OUTPUT.PUT_LINE(V_SUM);
    V_SUM:=V_SUM+1;
END LOOP;
END;
-- 要約: 

3 種類のループ: 
-- FOR ループ、ループ変数が下限値と上限値の間にあり、反復され、最後に上限値に達するとループが終了します。

-- LOOP ループは、ループから抜け出す条件が整うまで無限にループし、条件が整わない場合は無限ループに陥ります。

-- While ループでは、要件を満たす条件を設定してからループに入る必要があり、条件が設定されていないと無限ループに陥りやすくなります。

チップ:

* ステートメントがループ内で少なくとも 1 回実行される場合は、通常 LOOP が使用されます
* 繰り返すたびに条件をテストする必要がある場合は、通常、while が使用されます * 
繰り返しの回数が既知の場合は、通常、FOR ループが使用されます。

ループから抜け出す命令

CONTINUE: CONTINUE ステートメントを使用して、現在のループの反復をスキップし、次のループの実行を継続します。

DECLARE 
   i NUMBER := 1; 
BEGIN 
   FOR i IN 1..5 LOOP 
      IF i = 3 THEN 
         CONTINUE; 
      END IF; 
      DBMS_OUTPUT.PUT_LINE('i = ' || i); 
   END LOOP; 
END; 

EXIT: EXIT ステートメントを使用してループを直ちに終了します。

DECLARE 
   i NUMBER := 1; 
BEGIN 
   FOR i IN 1..5 LOOP 
      IF i = 3 THEN 
         CONTINUE; 
      END IF; 
      DBMS_OUTPUT.PUT_LINE('i = ' || i); 
   END LOOP; 
END; 

おすすめ

転載: blog.csdn.net/weixin_57024726/article/details/133139226