Oracle TREAT() 函数使用指南
Oracle TREAT() 是一个内置函数,它用于更改表达式的声明类型。
Oracle TREAT() 语法
这里是 Oracle TREAT() 函数的语法:
TREAT( expr AS [ REF ] [ schema. ]type | JSON )
参数
expr-
必需的。被操作的表达式。
[ REF ] [ schema. ]type | JSON-
必需的。需要声明为的类型。
返回值
Oracle TREAT() 函数返回。
请注意,您必须拥有对 type 的 EXECUTE 对象特权才能使用此函数。
-
在
expr AS JSON中,expr是包含 JSON 的 SQL 数据类型,例如CLOB。 -
在
expr AS type中,expr和type必须是用户定义的对象类型,不包括顶级集合。 -
type必须是expr声明类型的某个超类型或子类型。如果expr的最具体类型是type(或type的某个子类型),则TREAT返回expr。如果expr的最具体类型不是type(或type的某个子类型),则TREAT返回NULL。 -
如果
expr的声明类型是REF类型,则只能指定REF。 -
如果
expr的声明类型是expr的源类型的REF,则type必须是源类型的某个子类型或超类型。如果DEREF(expr)的最具体类型是type(或type的子类型),则TREAT返回expr。如果DEREF(expr)的最具体类型不是type(或type的子类型),则TREAT返回NULL。
Oracle TREAT() 示例
以下语句检索 persons 表中所有人的工资属性,对于不是员工的人的实例,值为 null。
SELECT
name,
TREAT(VALUE(p) AS employee_t).salary salary
FROM persons p;
输出:
NAME SALARY
------------------------- ----------
Bob
Joe 100000
Tim 1000结论
Oracle TREAT() 是一个内置函数,它用于更改表达式的声明类型。