【PL/SQL】Oracle PL/SQL入門【第5回 クルくる回してみよう】

2020年8月21日

PL/SQL入門 プロシージャで処理を書いてみよう vol.2

第5回目で処理を書いてみました。INSERTを4回書いてみましたが、じゃあ100回書きたいとなった時に結構大変です。
そう言う時はループ処理です。

STEP1. FOR文でループしてみよう

さっそく、テキストエディタでPL/SQLをコーディングしてみます。
下記の内容をエディタで記述しテキストとして保存して下さい。
ここでは、「5.sql」ファイルとして保存しました。

CREATE OR REPLACE PROCEDURE TEST5 IS
BEGIN
    FOR I IN 5..10
    LOOP
        INSERT INTO TBL_TEST VALUES(I, 'TEST' || TO_CHAR(I), I * 100);
    END LOOP;

    COMMIT;
END;
/
show errors

STEP2. 処理をコンパイルして実行してみよう

STEP1.のソースをコンパイル ⇒ 実行してみましょう。
実行が成功したら、Oracle SQL Developerで「TBL_TEST」テーブルの値を確認してみます。

第4回目で出力した「ID」1~4のレコードとは別に
「ID」5~10のレコードが出力されています。
「ID」1~4のレコードは、INSERTを4つ書いて出力しましたが、
「ID」5~10のレコードは、FORループで出力しました。

FOR I IN 5..10
LOOP
    INSERT INTO TBL_TEST VALUES(I, 'TEST' || TO_CHAR(I), I * 100);
END LOOP;

ソースの説明をしたいと思います。
■1行目:FOR I IN 5..10
「I」はループ変数名です。任意で名前を決められます。
「5..10」はループ範囲です。この場合は5から10でループします。

■2行目、4行目: LOOP、END LOOP
ループの開始と終了です。

■3行目: INSERT INTO TBL_TEST VALUES(I, 'TEST’ || TO_CHAR(I), I * 100);
VALUESの引数ですが、
1つ目:IDに設定する値をループ変数としています。
2つ目:NAMEに設定する値を「TEST」+ ループ変数としています。
    PL/SQLと言うか、SQLで文字列を結合する時は「||」を指定します。
    TO_CHAR(I)は、ループ変数を数値型から文字列型に変換しています。
3つ目: TNKに設定する値を、ループ変数 × 100 を計算した結果としています。

第4回目より多めにINSERTしましたが、FORループを使用する事で簡単にコーディングできました。
徐々にできる事を増やして行きますので、次回をお楽しみに!

記事を読む >> Oracle PL/SQL入門【第6回 例外処理のはなし】

【PL/SQL】メニュー

サイトマップ

2020年8月21日Oracle,PL/SQL,データベース,プログラムPL/SQL入門

Posted by こっぷ