[Oracle 19c]PL/SQLで配列の数分繰り返すプロシージャのサンプル

環境
Windows 10 Home 64bit
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0

構文
FOR 変数 IN 数値…数値 LOOP
END LOOP;
FOR文を使って、配列の要素を繰り返して取得します。

1.プロシージャの定義

create or replace procedure TESTE
IS
    TYPE CFT IS TABLE OF VARCHAR2(10) INDEX BY BINARY_INTEGER;
    city CFT;
BEGIN
      city(0) := '東京';
      city(1) := '大阪';
      city(2) := '福岡';
      city(3) := '横浜';

    FOR i IN city.FIRST..city.LAST
      LOOP
      DBMS_OUTPUT.PUT_LINE(city(i)); 
      END LOOP;
END;

2.プロシージャを作成します

SQL> create or replace procedure TESTE
  2  IS
  3      TYPE CFT IS TABLE OF VARCHAR2(10) INDEX BY BINARY_INTEGER;
  4      city CFT;
  5  BEGIN
  6  city(0) := '東京';
  7  city(1) := '大阪';
  8  city(2) := '福岡';
  9  city(3) := '横浜';
 10
 11      FOR i IN city.FIRST..city.LAST
 12  LOOP
 13        DBMS_OUTPUT.PUT_LINE(city(i));
 14  END LOOP;
 15  END;
 16  /

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

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

SQL> set serveroutput on
SQL> execute TESTE()
東京
大阪
福岡
横浜

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

 

Oracle 19c

Posted by arkgame