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()
是一个内置函数,它用于更改表达式的声明类型。