Use the Oracle10g Collection API DELETE method against a set of elements.
SQL> SQL> SET ECHO ON SQL> SET SERVEROUTPUT ON SIZE 1000000 SQL> SQL> DECLARE 2 3 4 TYPE number_table IS TABLE OF INTEGER; 5 6 7 number_list NUMBER_TABLE; 8 9 10 PROCEDURE print_list (list_in NUMBER_TABLE) IS 11 12 BEGIN 13 14 15 FOR i IN list_in.FIRST..list_in.LAST LOOP 16 17 18 IF list_in.EXISTS(i) THEN 19 DBMS_OUTPUT.PUT_LINE('List:'||list_in(i)); 20 21 END IF; 22 23 END LOOP; 24 25 END print_list; 26 27 BEGIN 28 29 30 IF NOT number_list.EXISTS(1) THEN 31 32 33 number_list := number_table(1,2,3,4,5); 34 35 END IF; 36 37 print_list(number_list); 38 39 40 number_list.DELETE(2,4); 41 42 43 print_list(number_list); 44 45 END; 46 / List:1 List:2 List:3 List:4 List:5 List:1 List:5 PL/SQL procedure successfully completed. SQL>