PL/SQLとは何か プログラムの特徴と基本構造を理解する:超入門「PL/SQL」(1)(2/2 ページ)
本連載は、「PL/SQL(Procedure Language/Structured Query Language)」を理解し、活用していくための実践講座です。初回は「PL/SQLの特徴とプログラムの基本構造」を解説します。
PL/SQLプログラムの構造を理解する
続いて、PL/SQLプログラムの構造を解説します。次回からPL/SQLの記述方法を解説していきます。その基礎になりますので、ここはしっかりと押さえておいてください。
PL/SQLで作成したプログラムを「PL/SQLブロック」と呼びます。このPL/SQLブロックは、4つのキーワードで区切られた3つの「部」で構成されます(図4)。
DECLARE以降が「宣言部」、BEGIN以降が「実行部」、EXCEPTION以降が「例外処理部」となり、最後のENDでブロックの終了を宣言するという構造となっています。
DECLARE〜〜:宣言部
宣言部では、ブロック内で使用するオブジェクト(変数やカーソルなど)の定義を記述します。
BEGIN〜〜:実行部
実行部では、SQLによるデータ操作や、手続き処理(反復文や分岐文など)など、実際に行う処理を記述します。
EXCEPTION〜〜:例外処理部
PL/SQLでは、エラーのことを「例外」と呼びます。例外処理部では、ブロック内で発生した例外に対する処理方法を記述します。
END
END;で、PL/SQLブロックの終了を宣言します。
なお、オブジェクトの定義が必要なかったり、例外への対処を指定する必要がなかったりする場合には、宣言部と例外処理部は省略できます。
簡単なプログラムでPL/SQLのブロック構造をおさらい
最後に、簡単なプログラムでPL/SQLのブロック構造をおさらいしましょう。プログラム内でどのような処理を行っているのかについては、「/*xxxxxx*/」で囲まれているコメントを参照してください
DECLARE e_sal NUMBER(7); /* e_salという変数をNUMBER型で宣言 */ BEGIN SELECT sal INTO e_sal FROM emp WHERE empno = 7788; /* EMP表からEMPNO列が7788の行のSAL列のデータを取り出し、e_sal変数に代入 */ IF e_sal > 2000 THEN UPDATE emp SET comm = 500 WHERE empno = 7788; END IF; /* e_sal変数の値が2000より大きければ、EMPNO列が7788の行のcomm列の値を500に更新 */ EXCEPTION WHEN too_many_rows THEN null; /* 実行部のSELECT文が複数行戻した場合はエラーが発生するが、何もせずに正常終了する */ END;
次回からは具体的な記述方法などを解説していく予定です。
筆者紹介
小笠原宏幸(おがさわら ひろゆき)
株式会社アシスト データベース技術本部所属。普段はOracle、PostgreSQL、JP1などの分野で研修講師を担当。また、書籍「SQL逆引き大全363の極意」(株式会社秀和システム)をはじめ、「これならわかるOracle超入門教室」(株式会社翔泳社)、「プロとしてのPL/SQL入門」(SBクリエイティブ株式会社)の共著も担当。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- DBエンジンを最大限に生かすバッチアプリの作り方
第1回では、バッチアプリケーションを設計するうえで考慮すべき4つのポイントについて解説しました。今回は、Oracleデータベースを最大限に利用したバッチアプリケーションの実装テクニックについて解説します。 - ODTを使ったVisual StudioからのPL/SQL開発
オラクル社が提供する3つの.NET環境用開発ツール「ODP.NET」「ODT」「ODE.NET」。Oracle 10gリリース2に対応した最新版を使って、Oracleデータベースを前提とした.NETアプリケーションの開発手法を解説する。(編集部) - 更新/挿入/削除のSQLを高速化する3つの技とは?
本連載では、Oracleデータベースのパフォーマンス・チューニングの中から、特にSQLのチューニングに注目して、実践レベルの手法を解説する。読者はOracleデータベースのアーキテクチャを理解し、運用管理の実務経験を積んでいることが望ましい。対象とするバージョンは現状で広く使われているOracle9iの機能を基本とするが、Oracle 10gで有効な情報も随時紹介していく。(編集局) - 【Oracle Database】忘れていませんか? 「アラートログ調査」に必要な、たった3つのキホン
データベース管理システムの運用でトラブルが発生したらどうするか。データベースサポートスペシャリストが現場目線の解決Tipsをお届けします。今回は基本編として「アラートログの調査で押さえるべき3つのポイント」を解説します。【Oracle Database 12c対応版】