ここではORACLE社が提供するPL/SQL言語とは何か、基礎から分かりやすく解説しています。
PL/SQLとは
PL/SQLはProcedural Languageの略です。
データベースの操作言語であるSQLを、Oracle Database向けに独自に拡張したプログラミング言語です。
非手続き型言語のSQLを手続き型言語に拡張されていて、ビジネスロジックの記述が可能になっています。
※SQLとは何か?どんな種類があるのか気になる方は、まず「【初心者向け】SQLとは?基礎から分かりやすく解説」で詳しく解説していますので参考にしてください。
PL/SQLの特徴
PL/SQLの特徴は次の通りです。
・処理の流れを簡単に理解できる
・ビジネスロジックの記述が可能
・パフォーマンスに優れる
・プラットフォームに依存しない(高い移植性)
下記で詳しく解説していきます。
処理の流れを簡単に理解できる
PL/SQLは他のプログラミング言語に比べて、比較的簡単に処理の流れを理解することが出来ます。
PL/SQLは、DECLARE以降の変数や定数などの宣言部とビジネスロジックを記述する処理部に明確に分かれているので、ソースコードがとてもシンプルになります。
↓は簡単なPL/SQLのプログラムになります。
DECLARE
/* 宣言部*/
var VARCHAR2(30);
BEGIN
/* 処理部*/
var := 'HELLO WORLD';
DBMS_OUTPUT.PUT_LINE(var);
END;
ビジネスロジックの記述が可能
PL/SQLではビジネスロジックの記述が出きます。
例えば、SQLでSELECTした結果を使って別の処理を行ったり、IFによる条件分岐やLOOPで繰り返し処理を実装することが出来ます。
他にもSQLで使える関数やパッケージも利用できるので非常に優秀なプログラミング言語です。
パフォーマンスに優れる
PL/SQLはパフォーマンスに優れます。
PL/SQLで作成したプログラムはデータベース上に存在するため、SQLを発行したときに発生する通信(APサーバ→DBサーバ間)などが発生しません。
データベース上で完結する処理であれば、高いパフォーマンスが発揮できます。
※ただし、PL/SQLでは大量のLOOP処理などは速くないため、処理によってはPL/SQLではない方が良いケースもあります。
プラットフォームに依存しない(高い移植性)
PL/SQLはプラットフォームに依存しません。
Oracleデータベース上に存在するので、マシンやOSなどのプラットフォームには依存しないため、別のサーバへの移行も行うことが出来ます。
無名ブロックとプロシージャ・ファンクション
PL/SQLで記述したソースは、ストアドプロシージャやストアドファンクション、パッケージとしてデータベース上に登録することが出来ます。
一方で、プログラムとしては登録せずテキストファイルなどに↓のような構成で作ったものを無名ブロックと呼びます。
無名ブロックは最小でBEGIN~ENDの部分で構成できます。
無名ブロックはSQLPLUSから呼び出して実行することも可能です。詳しくは↓で紹介していますので参考にしてください。
>>PL/SQLの書き方
DECLARE
/* 宣言部(任意) */
BEGIN
/* 処理部(必須) */
EXCEPTION
/* 例外処理部(任意) */
END;