LoginSignup
4
2

More than 3 years have passed since last update.

PL/SQLを触らないといけなくなったので基本文法まとめてみた

Last updated at Posted at 2020-02-14

1. 基本となる3つのブロック

/* 基本となる3つのブロック */
DECLARE
  -- 宣言部
  -- 変数・定数・型・カーソルなどを定義します
BEGIN
  -- 処理部
  -- 処理を記述します
EXCEPTION
  -- 例外処理部
  -- BEGINの中で例外が発生した場合の例外処理を記述します
END;

宣言部DECLARE

宣言部では、変数・定数・型・カーソルなどの定義を行います。
キーワードDECLAREを使用して宣言部を記述します。

処理部BEGIN

この中に処理を記述します。
キーワードBEGINを使用して処理部を記述します。
この処理部内にてカーソルを1レコードずつLOOPさせ処理していく形になります。

例外処理部EXCEPTION

処理部で例外が発生した場合の例外処理を記述します。
キーワードEXCEPTIONを使用して例外処理部を記述します。

ブロックの終わりEND

ブロックの終わりには、キーワードENDを使用します。

2. よくある処理の流れ

PL/SQLは、バッチ処理にて利用される事が多いと思いますが、
その際の処理の流れは、基本的には以下のパターンになるかと思います。

  1. 必要な情報を元となるテーブル群から取得し、カーソルを作成。
  2. 取得したカーソルを1レコードずつ処理しデータを加工。
  3. 加工したレコードを任意の形式で出力(任意のテーブルへINSERT・UPDATEするなど)
  4. カーソルの全てのレコードに対して2・3を繰り返す。

私が触る必要のあったバッチも上記の様に、
元となるテーブル群をJOINした結果からカーソルを作成して1レコードずつ加工した後、出力用テーブルへINSERTする形式となっていました。

#おまけ

PL/SQLは何の略?

PL/SQLの「PL」は「Procedural Language」のことらしい。
SQLを手続き型言語(Procedural Language)に拡張した言語であることからそのように命名されたとのこと。

ベースとなった言語

PL/SQLは、Adaという言語をベースとして作られたらしい。
ちなみに、Adaの読み方は「エイダ」。
https://ja.m.wikipedia.org/wiki/Ada

おわり

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2