Нельзя удалить элементы из середины массива.
Справочник по языку PL / SQL: коллекции и записи PL / SQL: метод сбора DELETE
Для более простого примера определите как массив varray, так и коллекцию вложенных таблиц:
create or replace type date_varray as varray(3) of date;
create or replace type date_ntab as table of date;
Теперь объявите коллекцию каждого типа и попробуйте удалить из нее элемент.
Вложенная таблица:
declare
my_ntable date_ntab := date_ntab(sysdate -1, sysdate, sysdate +1);
begin
my_ntable.delete(2);
end;
PL/SQL procedure successfully completed.
Varray:
declare
my_varray date_varray := date_varray(sysdate -1, sysdate, sysdate +1);
begin
my_varray.delete(2);
end;
my_varray.delete(2);
*
ERROR at line 4:
ORA-06550: line 4, column 5:
PLS-00306: wrong number or types of arguments in call to 'DELETE'
ORA-06550: line 4, column 5:
PL/SQL: Statement ignored