グローバル変数の作成と使用

グローバル変数を使用して、セッションに特定の変数値を指定できます。

CREATE VARIABLE ステートメントを使用して、グローバル変数を作成します。 ユーザー・クラスを定義するグローバル変数を作成する例を以下に示します。

  CREATE VARIABLE USER_CLASS INT DEFAULT (CLASS_FUNC(USER))

この変数には、 CLASS_FUNC という関数を呼び出したときの結果に基づく初期値セットがあります。 この関数では、USER 特殊レジスター値に基づいて管理者やクラークなどのクラス値を割り当てることになっています。

グローバル変数は、それが初めて参照されるセッションでインスタンス化されます。 それが設定された後は、セッション内で明示的に変更されない限り、その値が保持されます。

グローバル変数を照会内で使用すると、どの結果を返すかを指定できます。 以下の例では、部門 A00 のすべての社員のリストが示されます。 USER_CLASS 値が 1 のグローバル変数を持つセッションだけが、これらの社員の給与を参照できます。

SELECT EMPNO, LASTNAME, CASE WHEN USER_CLASS = 1 THEN SALARY ELSE NULL END
   FROM EMPLOYEE
   WHERE WORKDEPT = 'A00'

グローバル変数は、式が許可されるすべてのコンテキストで使用できます。 ホスト変数とは異なり、グローバル変数は CREATE VIEW ステートメント内で使用できます。