Как удалить элемент из varray в оракуле?

Я создаю коллекцию varray как 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. Там решение было другим, чем я ожидал. Я хочу удалить и превратить varray в разреженную коллекцию, можно?


person Nvr    schedule 02.12.2019    source источник