PL/SQL 【Procedural Language Extensions to SQL】
概要
PL/SQL(Procedural Language Extensions to SQL)とは、米オラクル(Oracle)社が開発した、同社のOracle Database向けのデータベース操作用プログラミング言語。データベースへの問い合せ言語の標準であるSQLに、独自の手続き型の言語仕様を追加した構造となっている。変数に値を代入して処理を行うことができ、データ型としてデータベースのフィールドに指定するのと同じ型(整数型やVARCHAR型、TIMESTAMP型など)を指定できる。特定のテーブル中のレコードをそのまま変数に代入したり、結合配列(他の言語の連想配列)やネストした表(nested table)などの複合型を利用することもできる。
制御構文として、繰り返し(LOOP文/FOR LOOP文/WHILE LOOP文/END LOOP句)、条件分岐(IF文/CASE文/THEN句/ELSE句/END IF句)、例外処理(EXEPTION文/WHEN句/THEN句)などが利用できる。
逐次的に実行するほかに、実行形式にコンパイルしてDBMS内に保存し、必要なときに呼び出して高速に実行することができるストアドプロシージャ(stored procedure)やストアドファンクション(stored function)に対応している。
ストアドファンクションとして登録したコードはSQL文の中で関数として呼び出すこともできる。汎用的な機能を実装したプログラムは「パッケージ」として保存し、他のPL/SQLプログラムから呼び出して実行することができる。
データベース管理システム(DBMS)であるOracle Database自体に実行環境が内蔵されており、データベースに関連した処理を高速に実行することができる。同社製以外のDBMSでも、IBM社のDb2やオープンソースのMariaDBなどがPL/SQLプログラムの実行に対応しているほか、PostgreSQLのPL/pgSQLはPL/SQLを元に開発された派生言語となっている(一部の仕様が異なる)。
(2018.10.31更新)