グローバル変数のタイプ
グローバル変数の分類方法は 3 つあり、変数の所有権、値の有効範囲、値を保守するために使用する方式によって分類します。
変数の所有権
グローバル変数は、データベース・マネージャーによって所有されている変数かどうか、またはユーザー定義の変数かどうかによって分類できます。
-
データベース・マネージャーは組み込みグローバル変数 を作成します。
組み込みグローバル変数は、システム・カタログでデータベース・マネージャーに登録されます。
組み込みグローバル変数は、以下のスキーマに属します。
- SYSIBM
- SYSIBMADM
- ユーザー定義グローバル変数 は、ユーザーが SQL DDL ステートメントを使用して作成します。 ユーザー定義グローバル変数は、システム・カタログでデータベース・マネージャーに登録されます。 ユーザー定義スキーマ・グローバル変数 は、CREATE VARIABLE SQL ステートメントを使って作成します。 ユーザー定義モジュール・グローバル変数 は、ALTER MODULE SQL ステートメントの ADD VARIABLE オプションまたは PUBLISH VARIABLE オプションを使用して作成します。
値の有効範囲
グローバル変数は、値の有効範囲に基づいてセッションまたはデータベースとして分類できます。
- セッション・グローバル変数 の値は、その特定のグローバル変数を使用するセッションごとに一意的に関連付けられます。 セッション・グローバル変数は、 組み込みグローバル変数の場合もあれば、ユーザー定義グローバル変数の場合もあります。
- データベース・グローバル変数 の値は、その特定のグローバル変数を使用するすべてのセッションで同じ単一の値です。 データベース・グローバル変数は、必ず、組み込みグローバル変数です。
値を保守する方式
グローバル変数は、変数の保守方式に基づいて分類できます。
- 定数グローバル変数 の値は、グローバル変数がセッションまたはデータベース (グローバル変数の有効範囲によって異なる) で最初に参照される際に、CONSTANT 節の評価に基づいてインスタンス化される固定値です。 このタイプのグローバル変数は、CREATE VARIABLE ステートメントの CONSTANT 節を使用して作成されます。 SQL ステートメントを使用して、グローバル変数に値を割り当てることはできません。 定数グローバル変数は、読み取り専用グローバル変数です。
- システム保守グローバル変数 の値は、データベース・マネージャーによって設定されます。 SQL ステートメントで値を割り当てることはできません。 システム保守グローバル変数として定義できるのは組み込みグローバル変数だけで、ほとんどの組み込みグローバル変数はシステム保守グローバル変数として定義されます。 システム保守グローバル変数は、読み取り専用グローバル変数です。
- ユーザー保守グローバル変数 には SQL ステートメントを使用して値を割り当てることができますが、この割り当てを行うにはグローバル変数に対する WRITE 特権が必要です。 このタイプのグローバル変数は、CONSTANT 節を使用しないで定義されるユーザー定義グローバル変数のデフォルトです。 組み込みグローバル変数を、SQL ステートメントを使用して値を割り当てられるように定義することもできます。