DEREF スカラー関数
DEREF 関数は引数のターゲット・タイプのインスタンスを戻します。
- expression
- 定義された有効範囲を持つ参照データ・タイプの値を戻す式です (SQLSTATE 428DT)。
結果の静的データ・タイプは、引数のターゲット・タイプです。 結果の動的データ・タイプは、引数のターゲット・タイプのサブタイプです。 結果は NULL になる場合があります。expression が NULL 値か、 または expression が突き合わせする OID がターゲット表にない参照の場合、 結果は NULL 値になります。
結果は参照のターゲット・タイプのサブタイプのインスタンスです。 結果は参照値と突き合わせするオブジェクト ID がある参照の、 ターゲット表またはターゲット・ビューの行を検出することにより決定されます。 この行のタイプによって結果の動的タイプが決定されます。 結果のタイプがターゲット表の副表の行またはターゲット・ビューのサブビューの行に基づく場合があるため、 ステートメントの許可 ID にはターゲット表とその副表のすべて、 またはターゲット・ビューとそのサブビューのすべての SELECT 特権が必要です (SQLSTATE 42501)。
例
EMPLOYEE はタイプ EMP の表であり、そのオブジェクト ID 列は EMPID であるとします。
次の照会は、EMPLOYEE 表 (およびその副表) の行ごとに、
タイプ EMP (またはそのサブタイプのいずれか) のオブジェクトを戻します。
この照会では、EMPLOYEE およびその副表すべてに対する SELECT 権限が必要です。
SELECT DEREF(EMPID) FROM EMPLOYEE