注册

自定义类型--array

张层平 2021/05/20 1345 1

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:LINUX
【CPU】:
【问题描述】*:

CREATE OR REPLACE TYPE test.arr_type_test as varray(65534) of text;

CREATE OR REPLACE TYPE COMPLEX AS OBJECT(
vls arr_type_test,
FUNCTION REMOVE_VLS(arr arr_type_test) RETURN arr_type_test
);


CREATE OR REPLACE TYPE BODY COMPLEX AS
  FUNCTION REMOVE_VLS(arr arr_type_test) RETURN arr_type_test IS
DECLARE
       textArr arr_type_test;
       flag  number;
       idx number;
       flg text;
BEGIN
  idx = 0;
  flag = 0;
  for i in 1..vls.count loop
    flag = 0;
    flg = vls[i];
    for j in 1..arr.count loop
        if arr[j] == flg then
          flag = 1 ;
        end if;
    end loop;
    if flag == 0 then
      textArr[idx] = vls[i];
      idx = idx+1;
    end if;
  end loop;
  return textArr;
END;
END;

我这if arr[j] == flg then 这行代码把flg缓存一个任意的字符串可以编译过但是改成flg他就会提示编译错误。是我写的有问题吗,我的需求是创一个数组类型,然后提供一个方法来删除传入的数组

回答 0
暂无回答
扫一扫
联系客服