構文

用途
TREATは式の宣言型を変更します。
このファンクションを使用する場合は、typeに対するEXECUTEオブジェクト権限が必要です。
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を戻します。
このファンクションは、CLOBデータを直接的にサポートしていません。ただし、暗黙的なデータ変換を使用してCLOBを引数として渡すことはできます。
例
次の例では、「置換可能な表および列のサンプル:」で作成された表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ファンクションを使用すると、置換可能列のサブタイプ属性に索引を作成できます。「置換可能な列の索引の作成例:」を参照してください。