写点什么

YashanDB TREAT 函数

作者:YashanDB
  • 2025-08-11
    广东
  • 本文字数:493 字

    阅读完需:约 2 分钟

TREAT 函数用于修改expr定义的类型。

必须拥有 type 的 EXECUTE 权限。

  • expr 和 type 的类型必须是自定义类型的 OBJECT 类型。

  • 如果 expr 和 type 是同一类型,函数返回值为 expr。

  • type 必须是 expr 定义类型的超类型或子类型,否则 TREAT 编译错误。

  • 如果 expr 的值不是 type 类型或 type 的子类型,TREAT 执行错误,在 SQL 中返回 NULL,在 PL 中产生一个异常。

示例

CREATE OR REPLACE TYPE udt_object_sp FORCE IS OBJECT (    branch_no CHAR(4),    branch_name VARCHAR2(200)) NOT FINAL;/
CREATE OR REPLACE TYPE udt_object_sub FORCE UNDER udt_object_sp ( area_no CHAR(2), address VARCHAR2(200)) NOT FINAL;/
DECLARE obj1 udt_object_sub := udt_object_sub('0101','Beijing','01','North Street'); obj2 udt_object_sp;BEGIN obj2 := TREAT (obj1 AS udt_object_sp); DBMS_OUTPUT.PUT_LINE(obj2.branch_name);END;/
DECLARE obj1 udt_object_sp := udt_object_sub('0101','Beijing','01','North Street'); obj2 udt_object_sub;BEGIN obj2 := TREAT (obj1 AS udt_object_sub); DBMS_OUTPUT.PUT_LINE(obj2.branch_name);END;/
复制代码


用户头像

YashanDB

关注

全自研国产新型大数据管理系统 2022-02-15 加入

还未添加个人简介

评论

发布
暂无评论
YashanDB TREAT函数_数据库_YashanDB_InfoQ写作社区