#ARRAY_REMOVE

array_remove
ARRAY_REMOVE ( array_var , compare_member )

ARRAY_REMOVE函数删除数组(数组变量数组对象数组类型)array_var中所有与compare_member相同的成员,并返回删除后的数组。

本函数遵循如下规则:

  • 在PL中可以作为数组类型变量的初始化函数。
  • 函数结果不能作为INSERT语句的value使用。
  • array_var的成员类型或compare_member的类型为非标量类型时报错。
  • 数组成员的删除不影响原有的数组变量,仅影响本函数的返回值。
  • 本函数不支持向量化计算。

array_var

数组变量,其值可以为:

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: 123
arr2: 234
arr3: 333
arr4: 234
arr5: 23
---------------
res1: 123
res2: 333
res3: 23
pdf-btn 下载文档
copy-btn 复制链接