Plsql-packages
PL/SQL-パッケージ
この章では、PL/SQLのパッケージについて説明します。 パッケージは、論理的に関連するPL/SQLタイプ、変数、およびサブプログラムをグループ化するスキーマオブジェクトです。
パッケージには2つの必須部分があります-
- パッケージ仕様
- パッケージ本体または定義
パッケージ仕様
仕様はパッケージへのインターフェースです。 パッケージの外部から参照できる型、変数、定数、例外、カーソル、およびサブプログラムを DECLARES します。 つまり、パッケージのコンテンツに関するすべての情報が含まれていますが、サブプログラムのコードは除外されています。
仕様に含まれるすべてのオブジェクトは、 public オブジェクトと呼ばれます。 パッケージ仕様にはないが、パッケージ本体にコード化されたサブプログラムは、 private オブジェクトと呼ばれます。
次のコードスニペットは、1つのプロシージャを持つパッケージ仕様を示しています。 多くのグローバル変数を定義し、パッケージ内で複数のプロシージャまたは関数を使用できます。
上記のコードがSQLプロンプトで実行されると、次の結果が生成されます-
パッケージ本体
パッケージ本体には、パッケージ仕様で宣言されたさまざまなメソッドのコードと、パッケージ外部のコードから隠されている他のプライベート宣言があります。
上記のコードがSQLプロンプトで実行されると、次の結果が生成されます-
パッケージ要素の使用
パッケージ要素(変数、プロシージャまたは関数)は、次の構文でアクセスされます-
データベーススキーマで上記のパッケージを既に作成していることを考慮してください。次のプログラムは cust_sal パッケージの find_sal メソッドを使用します-
上記のコードがSQLプロンプトで実行されると、顧客IDの入力を求められ、IDを入力すると、対応する給与が次のように表示されます-
例
次のプログラムは、より完全なパッケージを提供します。 私たちは、データベースに保存されたCUSTOMERSテーブルを次のレコードとともに使用します-
パッケージ仕様
上記のコードがSQLプロンプトで実行されると、上記のパッケージが作成され、次の結果が表示されます-
パッケージ本体の作成
上記の例では、*ネストされたテーブル*を使用しています。 ネストした表の概念については、次の章で説明します。
上記のコードがSQLプロンプトで実行されると、次の結果が生成されます-
パッケージの使用
次のプログラムは、パッケージ_c_package_で宣言および定義されたメソッドを使用します。
上記のコードがSQLプロンプトで実行されると、次の結果が生成されます-