DEREF 标量函数
DEREF 函数返回自变量的目标类型的实例。
- expression
- 返回具有已定义作用域的参考数据类型的值的表达式 (SQLSTATE 428DT)。
结果的静态数据类型是自变量的目标类型。 结果的动态数据类型是自变量的目标类型的子类型。 结果可以为空值。 如果 expression 是空值,或者 expression 是目标表中没有匹配 OID 的引用,那么结果为空值。
结果是引用的目标类型的子类型的实例。 通过查找具有与引用值匹配的对象标识的引用的目标表或目标视图的行来确定结果。 此行的类型确定结果的动态类型。 由于结果的类型可以基于目标表或目标视图的子表或子视图的行,因此语句的授权标识必须对目标表及其所有子表或目标视图及其所有子视图具有 SELECT 特权 (SQLSTATE 42501)。
示例
假定 EMPLOYEE 是类型为 EMP 的表,并且其对象标识列名为 EMPID。 然后,对于 EMPLOYEE 表 (及其子表) 的每行,以下查询将返回类型为 EMP (或其子类型之一) 的对象。 此查询需要对 EMPLOYEE 及其所有子表的 SELECT 特权。
SELECT DEREF(EMPID) FROM EMPLOYEE