[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.プロシージャの定義

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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;
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;
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.プロシージャを作成します

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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 /
プロシージャが作成されました。
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 / プロシージャが作成されました。
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.プロシージャを実行します

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> set serveroutput on
SQL> execute TESTE()
東京
大阪
福岡
横浜
PL/SQLプロシージャが正常に完了しました。
SQL> set serveroutput on SQL> execute TESTE() 東京 大阪 福岡 横浜 PL/SQLプロシージャが正常に完了しました。
SQL> set serveroutput on
SQL> execute TESTE()
東京
大阪
福岡
横浜

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

 

Oracle 19c

Posted by arkgame