TREAT
Syntax
Purpose
TREAT changes the declared type of an expression.
You must have the EXECUTE object privilege on type to use this function.
-
exprandtypemust be user-defined object types, excluding top-level collections. -
typemust be some supertype or subtype of the declared type ofexpr. If the most specific type ofexpristype(or some subtype oftype), thenTREATreturnsexpr. If the most specific type ofexpris nottype(or some subtype oftype), thenTREATreturnsNULL. -
You can specify
REFonly if the declared type ofexpris aREFtype. -
If the declared type of
expris aREFto a source type ofexpr, thentypemust be some subtype or supertype of the source type ofexpr. If the most specific type ofDEREF(expr) istype(or a subtype oftype), thenTREATreturnsexpr. If the most specific type ofDEREF(expr) is nottype(or a subtype oftype), thenTREATreturnsNULL.
See Also:
"Data Type Comparison Rules" for more information
Examples
The following statement uses the table oe.persons, which is created in "Substitutable Table and Column Examples". The example retrieves the salary attribute of all people in the persons table, the value being null for instances of people that are not employees.
SELECT name, TREAT(VALUE(p) AS employee_t).salary salary FROM persons p; NAME SALARY ------------------------- ---------- Bob Joe 100000 Tim 1000
You can use the TREAT function to create an index on the subtype attributes of a substitutable column. For an example, see "Indexing on Substitutable Columns: Examples".
