Oracle ストアド プロシージャのループ ステートメント: 1. LOOP ループ、構文は「ループ ループ本体; EXIT WHEN ループ終了条件式; END LOOP;」; 2. WHILE ループ、構文は「while 条件式」計算式 ループ ループ文;エンド ループ;"; 3. ループの場合、構文は「for 変数 IN (逆) カウンタ下限値…カウンタ上限値 LOOP ループ本体;END LOOP;」となります。
このチュートリアルの動作環境: Windows 10 システム、Oracle バージョン 12c、Dell G3 コンピューター。
プログラムで特定の操作を繰り返し実行する必要がある場合、ループ構造を使用する必要があります。 PL/SQLのループ文には主にLOOP文、WHERE文、FOR文の3種類があります。
LOOP ステートメントは、まずループ本体を 1 回実行し、次に EXIT WHEN キーワードの後の条件式が true か false かを判断します。 true の場合、ループ本体を終了します。それ以外の場合、プログラムはループ本体を再度実行します。
基本構文:
loop A; EXIT WHEN B; END LOOP;
A: ループ本体内の SQL ステートメントを表します。これは 1 文または複数の文にすることができます。これはループ本体の中核部分です。これらのステートメントは実行されます。少なくとも一度は。
B: ループ終了条件式。 true の場合はループを終了し、そうでない場合はループ本体を再度実行します。
コード例:
-- Created on 2020/12/16 by GUO declare i int:= 0; begin loop i:=i+1; dbms_output.put_line(i); EXIT WHEN i > 3; END LOOP; end;
実行結果:
##実践例: ループカーソルを使用する場合、値を取得しますカーソル内の値を再割り当てする必要があります。再割り当てしないと、エラーが報告されます。-- Created on 2020/12/17 by GUO declare cursor user is select * from user_table; user1 user_table%rowtype; begin open user; loop fetch user into user1; exit when user%notfound; dbms_output.put_line('用户名称:' || user1.USER_NAME); dbms_output.put_line('用户年龄:' || user1.USER_AGE); end loop; close user; --关闭游标 end;
while a loop b; end loop;
-- Created on 2020/12/17 by GUO declare i int := 0; begin while i < 3 loop i := i + 1; dbms_output.put_line(i); end loop; end;
-- Created on 2020/12/17 by GUO declare cursor user is select * from user_table; user1 user_table%rowtype; begin open user; fetch user into user1; while(user%found)loop dbms_output.put_line('用户名称:' || user1.USER_NAME); fetch user into user1; end loop; end;
基本構文:
for A IN (reverse) B...C LOOP D; END LOOP;
A: カウンターとして使用される変数 (通常は証明書タイプ) を表します。デフォルト値は増加します。ループ内で reverse キーワードが使用されると、徐々にループします。
B: カウンタ下限値 カウンタ値が下限値未満の場合、ループを終了します。
C: カウンタの上限値 カウンタ値が上限値を超えた場合、ループを終了します。
D: ループ本体。
コード例:
-- Created on 2020/12/17 by GUO declare i int := 0; begin for i IN reverse 1..5 LOOP dbms_output.put_line(i); END LOOP; end;
実行結果:
##実践例:
カーソルを使用した使用-- Created on 2020/12/17 by GUO declare cursor user is select * from user_table; begin for user1 in user loop dbms_output.put_line('用户名称:'||user1.USER_NAME); dbms_output.put_line('用户年龄:'||user1.USER_AGE); end loop; end;
Oracle ビデオ チュートリアル
」以上がOracle ストアド プロシージャのループ ステートメントとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。