PL/SQLの特徴
・手続き型構造とSQLの統合
非手続言語のSQLにIF文やLOOP文を使用して制御構造をもたせることができる。
PL/SQLでは、すべてのSQLコマンドが実行可能
・高いパフォーマンス
複数のSQLを一つのブロックにまとめてOracleに投げることができるので効率がよく
ネットワーク通信量を抑えることができる。
・高い移植性
PL/SQLで作成されたアプリは、OSやプラットフォームに依存しない。
他のプラットホームでも利用可能。
PL/SQLを利用して作成可能なオブジェクト
・プロシジャ
特定のアクションを実行するサブプログラム
・ファンクション
値を計算するサブプログラム
・パッケージ
サブプログラムをグループ化したオブジェクト
Oracle提供のパッケージはビルトインパッケージ
例)DBMS_OUTPUT ・・・ テキストメッセージをDBバッファに送信
DBMS_OUTPUT.PUT_LINE('OK');
※利用前に以下を実施
set serveroutput on
DBMS_STATS ・・・ 統計情報の取得(表示、変更)
・トリガー
表、ビュー、スキーマ、データベースに対応ずけられ特定の操作、動作をしたときに暗黙的に
実行されるプログラム。
起動されるイベント
①表、ビューに対するDML
②DDL
③ユーザのログイン、ログオフ
④データベース起動、停止
⑤データベースに発生したエラー
構文
DECLARE
---宣言部
Oracleのデータ型を利用
%TYPE(列の属性取得)
var dept.deptno%TYPE
%ROWTYPE(行取得)
d_row dept.%ROWTYPE
BEGIN
---処理部
EXCEPTION
---例外処理部
END;
例)
set serveroutput on
DECLARE
var NUMBER;
BEGIN
var := 10;
DBMS_OUTPUT.PUT_LINE(var);
var := var + 12;
DBMS_OUTPUT.PUT_LINE(var);
END;
/