1

我创建一个可变数组集合CREATE OR REPLACE TYPE vary_typ IS VARRAY(40) OF NUMBER; /并形成匿名块

DECLARE
  v_a vary_typ := vary_typ (1,3,5,6,34,67,50);
BEGIN
  FOR i IN v_a.FIRST..v_a.COUNT
  LOOP
   IF v_a.EXISTS(i) THEN
    v_a.DELETE(i);
   ELSE
    dbms_output.put_line(i);
   END IF;
   dbms_output.put_line(v_a);
  END LOOP;
END;
/

但无法删除。我知道varray不能使用.DELETE仅执行方法删除.TRIM。但我的问题是,是否有可能通过将元素转换为INDEX BY TABLE然后删除来删除元素?

我已经看到了Varray Oracle 中的 Delete element的帖子。解决方案与我的预期不同。我想删除并将 varray 变成稀疏集合,可以吗?

4

0 回答 0