ARRAY_REMOVE 函数删除数组(数组变量,数组对象,数组类型)array_var 中所有与 compare_member 相同的成员,并返回删除后的数组。
本函数遵循如下规则:
在 PL 中可以作为数组类型变量的初始化函数。
函数结果不能作为 INSERT 语句的 value 使用。
array_var 的成员类型或 compare_member 的类型为非标量类型时报错。
数组成员的删除不影响原有的数组变量,仅影响本函数的返回值。
本函数不支持向量化计算。
array_var
数组变量,其值可以为:
一个存在的数组,数组成员必须为普通标量数据类型。
NULL,此时函数返回 NULL。
compare_member
通用表达式,其值类型必须为与 array_var 数组成员可进行比较的类型,具体参考 YashanDB 的比较运算规则。
示例(HEAP 表)
SET serveroutput ON
DECLARE TYPE arr_type IS VARRAY(10) OF CHAR(5); arr arr_type := arr_type('123', '234', '333', '234', '23'); --使用ARRAY_REMOVE函数对数组初始化 res arr_type := ARRAY_REMOVE(arr, 234);BEGIN FOR i IN 1 .. arr.COUNT LOOP DBMS_OUTPUT.PUT_LINE('arr'||i||': '||arr(i)); END LOOP; DBMS_OUTPUT.PUT_LINE('---------------'); FOR i IN 1 .. res.COUNT LOOP DBMS_OUTPUT.PUT_LINE('res'||i||': '||res(i)); END LOOP;END;/arr1: 123arr2: 234arr3: 333arr4: 234arr5: 23---------------res1: 123res2: 333res3: 23
复制代码
评论