「PL/SQL」プロシージャでWHILE文を使って最初に条件を判定するサンプル

環境
Oracle Database 11g Release 11.2.0.1.0 – 64bit Production
PL/SQL Release 11.2.0.1.0 – Production

構文

CREATE OR REPLACE PROCEDURE プロシージャ名
IS
 変数名 データの型:=値
BEGIN
  WHILE 条件式
  LOOP
    処理コード
  END LOOP;
END;

while文を利用して、最初の判定でfalseの場合は、ループ処理が1回も行われません。

使用例
SQL構文

CREATE OR REPLACE PROCEDURE TTSS2
IS
  nn NUMBER(10) := 20;
BEGIN
      WHILE nn < 25 
      LOOP
            DBMS_OUTPUT.PUT_LINE(nn);-- 20 21 22 23 24が出力される
            nn := nn + 1;
      END LOOP;
END;

操作例
1.プロシージャ名「TTSS2」を作成します。

SQL> CREATE OR REPLACE PROCEDURE TTSS2
  2  IS
  3    nn NUMBER(10) := 20;
  4  BEGIN
  5     WHILE nn < 25
  6     LOOP
  7             DBMS_OUTPUT.PUT_LINE(nn);-- 20 21 22 23 24が出力される
  8             nn := nn + 1;
  9     END LOOP;
 10  END;
 11  /

プロシージャが作成されました。

2.プロシージャを実行します

serverのoutputをonにして文字列を出力します
SQL> set serveroutput on
プロシージャを実行します

SQL> execute TTSS2()
20
21
22
23
24

PL/SQLプロシージャが正常に完了しました。

 

Oracle

Posted by arkgame