写点什么

YashanDB ARRAY_REPLACE 函数

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

    阅读完需:约 2 分钟

ARRAY_REPLACE 函数将数组(数组变量,数组对象,数组类型)array_var 中所有与 compare_member 相同的成员替换为 replace_member,并返回替换后的数组。

本函数遵循如下规则:

当 array_var 的成员类型或 compare_member 的类型为非标量类型时报错。

本函数在 PL 中可以作为数组类型变量的初始化函数。

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

数组成员的替换不影响原有的数组变量,仅影响本函数的返回值。

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

array_var

数组变量,其值可以为:

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

NULL,此时函数返回 NULL。

compare_member

通用表达式,其值类型必须为与 array_var 数组成员可进行比较的类型,具体参考 YashanDB 的比较运算规则。

replace_member

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

示例(HEAP 表)

SET serveroutput ON
DECLARE TYPE arr_type IS VARRAY(10) OF CHAR(5); arr arr_type := arr_type('a', 'b', 'cc', 'ddd', 'e'); --使用ARRAY_REPLACE函数对数组初始化 res arr_type := ARRAY_REPLACE(arr, 'cc', NULL);BEGIN FOR i IN 1 .. res.COUNT LOOP IF res(i) IS NULL THEN DBMS_OUTPUT.PUT_LINE(i ||' is NULL'); ELSE DBMS_OUTPUT.PUT_LINE(i ||': '|| res(i)); END IF; END LOOP;END;/1: a2: b3 is NULL4: ddd5: e
复制代码


用户头像

YashanDB

关注

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

还未添加个人简介

评论

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