パッケージについて
パッケージとは、関連するサブプログラム、およびそれらで使用する宣言カーソルと変数からなるPL/SQL単位です。通常は、サブプログラムをパッケージに入れます。
次の理由で、サブプログラムをパッケージに入れます。
-
パッケージによってクライアント・プログラムから実装の詳細を隠すことができます。
クライアント・プログラムから実装の詳細を隠すことは、広く支持されるベスト・プラクティスです。Oracleのカスタマの多くは、このプラクティスに厳密に従っていて、クライアント・プログラムでは、PL/SQLサブプログラムを起動したときにのみデータベースにアクセスできます。一部のカスタマでは、クライアント・プログラムでSELECT文を使用し、データベース表から情報を取得することを可能にしていますが、この文はデータベースを変更するすべてのビジネス機能に対するPL/SQLサブプログラムを起動する必要があります。
-
パッケージ済みサブプログラムは、パッケージ外部からの起動時にパッケージ名による修飾が必要であり、これによりこれらのパッケージ名はパッケージ外部からの起動時に常に確実に機能します。
たとえば、Oracle Database 11gより前のバージョンでCONTINUEというスキーマ・レベル・プロシージャを作成したとします。Oracle Database 11gはCONTINUE文を導入しました。したがって、コードをOracle Database 11gに移植しても、コンパイルされません。ただし、プロシージャをパッケージ内で開発した場合は、コードはそのプロシージャをpackage_nameと呼ぶため、プロシージャはまだコンパイルされます。CONTINUEを使用すると、コードはまだコンパイルされません。
ノート: Oracle Databaseでは、データベースの機能を拡張する多くのPL/SQLパッケージが用意され、PL/SQLでSQLの機能にアクセスできます。アプリケーションの作成時または固有のストアド・プロシージャの作成時に、提供されたパッケージを使用できます。これらのパッケージの詳細は、Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンスに関する項を参照してください。
関連情報:
-
パッケージの一般情報は、『Oracle Database概要』を参照してください。
-
パッケージを使用する理由の詳細は、Oracle Database PL/SQL言語リファレンスを参照
-
PL/SQLパッケージの詳細は、Oracle Database PL/SQL言語リファレンスを参照
-
Oracle Database PL/SQL Packages and Types Reference for complete information about the PL/SQL packages that Oracle provides