写点什么

YashanDB ARRAY_APPEND 函数

作者:YashanDB
  • 2025-04-09
    广东
  • 本文字数:727 字

    阅读完需:约 2 分钟

ARRAY_APPEND 函数将 new_member 添加到数组(数组变量,数组对象,数组类型)array_var 的末尾,并返回添加后的数组结果。

本函数遵循如下规则:

在 PL 中可以当作特殊的数组初始化函数使用。

函数结果不能作为 INSERT 语句的 value 使用。

不能对包含非标量类型成员的数组使用本函数。

执行本函数后,array_var 中的成员数量并不会发生变化。

本函数不支持向量化计算。

array_var

数组变量,其值可以为:

一个存在的数组,数组成员必须为普通标量数据类型。

NULL,此时将会生成一个以 new_member 的类型作为成员类型的数组(new_member 不能为 NULL),且新数组仅包含 new_member 一个成员。

new_member

通用表达式,其类型必须为与 array_var 数组成员相同,或可进行隐式转换的数据类型。

当 array_var 不为 NULL 时,new_member 可以为 NULL,表示向 array_var 数组末尾添加一个 NULL 成员。


示例(HEAP 表)

SET serveroutput ON
DECLARE TYPE arr_type IS VARRAY(10) OF CHAR(5); a arr_type := arr_type('a', 'b', 'c'); b arr_type;BEGIN -- 向a的末尾添加一个成员'd',生成临时数组并将该数组赋值给b b := ARRAY_APPEND(a, 'd'); FOR i IN 1 .. b.COUNT LOOP IF b(i) IS NULL THEN DBMS_OUTPUT.PUT_LINE(i||' is NULL'); ELSE DBMS_OUTPUT.PUT_LINE(b(i)); END IF; END LOOP;END;/abcd
-- 首个参数为NULL时生成新数组DECLARE TYPE arr_type IS VARRAY(10) OF CHAR(5); b arr_type;BEGIN -- 生成新数组 b := ARRAY_APPEND(NULL, 'abcd'); FOR i IN 1 .. b.COUNT LOOP IF b(i) IS NULL THEN DBMS_OUTPUT.PUT_LINE(i||' is NULL'); ELSE DBMS_OUTPUT.PUT_LINE(i||' is: '||b(i)); END IF; END LOOP;END;/1 is: abcd
复制代码


用户头像

YashanDB

关注

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

还未添加个人简介

评论

发布
暂无评论
YashanDB ARRAY_APPEND函数_YashanDB_InfoQ写作社区