構文
用途
TREAT
は式の宣言型を変更します。
このファンクションを使用する場合は、type
に対するEXECUTE
オブジェクト権限が必要です。
expr
とtype
は、トップレベルのコレクションを除く、ユーザー定義オブジェクト型である必要があります。
type
は、スーパータイプまたはexpr
の宣言型のサブタイプである必要があります。expr
の最も指定される型がtype
(またはtype
のサブタイプ)である場合、TREAT
はexpr
を戻します。expr
の最も指定される型がtype
(またはtype
のサブタイプ)ではない場合、TREAT
はNULL
を戻します。
expr
の宣言型がREF
型の場合にのみ、REF
を指定できます。
expr
の宣言型がexpr
のソース型へのREF
である場合、type
はサブタイプまたはexpr
のソース型のスーパータイプである必要があります。DEREF
(expr
)の最も指定される型がtype
(またはtype
のサブタイプ)である場合、TREAT
はexpr
を戻します。DEREF
(expr
)の最も指定される型がtype
(またはtype
のサブタイプ)ではない場合、TREAT
はNULL
を戻します。
例
次の例では、「置換可能な表および列のサンプル:」
で作成された表oe.personsを使用します。次の例では、persons
表のすべての人物の給与属性を検索します。従業員ではない人物のインスタンスの値はNULLです。
SELECT name, TREAT(VALUE(p) AS employee_t).salary salary FROM persons p; NAME SALARY ------------------------- ---------- Bob Joe 100000 Tim 1000
TREAT
ファンクションを使用すると、置換可能列のサブタイプ属性に索引を作成できます。「置換可能な列の索引の作成例:」を参照してください。