EXTEND v15
The EXTEND method increases the size of a collection. The EXTEND method has three variations.
Variation 1: Appending a single element
The first variation appends a single NULL element to a collection. The syntax for this variation is:
<collection>.EXTEND
Where collection is the name of a collection.
This example uses the EXTEND method to append a single, null element to a collection:
DECLARE TYPE sparse_arr_typ IS TABLE OF NUMBER; sparse_arr sparse_arr_typ := sparse_arr_typ(-100,-10,0,10,100); v_results VARCHAR2(50); BEGIN DBMS_OUTPUT.PUT_LINE('COUNT: ' || sparse_arr.COUNT); sparse_arr.EXTEND; DBMS_OUTPUT.PUT_LINE('COUNT: ' || sparse_arr.COUNT); FOR i IN sparse_arr.FIRST .. sparse_arr.LAST LOOP IF sparse_arr(i) IS NULL THEN v_results := v_results || 'NULL '; ELSE v_results := v_results || sparse_arr(i) || ' '; END IF; END LOOP; DBMS_OUTPUT.PUT_LINE('Results: ' || v_results); END; COUNT: 5 COUNT: 6 Results: -100 -10 0 10 100 NULL
COUNT indicates that before the EXTEND method, there were five elements in the collection. After the EXTEND method is invoked, the collection contains six elements.
Variation 2: Appending a specified number of elements
This variation of the EXTEND method appends a specified number of elements to the end of a collection:
<collection>.EXTEND(<count>)
Where:
collection is the name of a collection.
count is the number of null elements added to the end of the collection.
This example uses the EXTEND method to append multiple null elements to a collection:
DECLARE TYPE sparse_arr_typ IS TABLE OF NUMBER; sparse_arr sparse_arr_typ := sparse_arr_typ(-100,-10,0,10,100); v_results VARCHAR2(50); BEGIN DBMS_OUTPUT.PUT_LINE('COUNT: ' || sparse_arr.COUNT); sparse_arr.EXTEND(3); DBMS_OUTPUT.PUT_LINE('COUNT: ' || sparse_arr.COUNT); FOR i IN sparse_arr.FIRST .. sparse_arr.LAST LOOP IF sparse_arr(i) IS NULL THEN v_results := v_results || 'NULL '; ELSE v_results := v_results || sparse_arr(i) || ' '; END IF; END LOOP; DBMS_OUTPUT.PUT_LINE('Results: ' || v_results); END; COUNT: 5 COUNT: 8 Results: -100 -10 0 10 100 NULL NULL NULL
COUNT indicates that before the EXTEND method, there were five elements in the collection. After the EXTEND method is invoked, the collection contains eight elements.
Variation 3: Appending copies of an element
This variation of the EXTEND method appends a specified number of copies of a particular element to the end of a collection:
<collection>.EXTEND(<count>, <index_number>)
Where:
collection is the name of a collection.
count is the number of elements added to the end of the collection.
index_number is the subscript of the element that's being copied to the collection.
This example uses the EXTEND method to append multiple copies of the second element to the collection:
DECLARE TYPE sparse_arr_typ IS TABLE OF NUMBER; sparse_arr sparse_arr_typ := sparse_arr_typ(-100,-10,0,10,100); v_results VARCHAR2(50); BEGIN DBMS_OUTPUT.PUT_LINE('COUNT: ' || sparse_arr.COUNT); sparse_arr.EXTEND(3, 2); DBMS_OUTPUT.PUT_LINE('COUNT: ' || sparse_arr.COUNT); FOR i IN sparse_arr.FIRST .. sparse_arr.LAST LOOP IF sparse_arr(i) IS NULL THEN v_results := v_results || 'NULL '; ELSE v_results := v_results || sparse_arr(i) || ' '; END IF; END LOOP; DBMS_OUTPUT.PUT_LINE('Results: ' || v_results); END; COUNT: 5 COUNT: 8 Results: -100 -10 0 10 100 -10 -10 -10
COUNT indicates that before the EXTEND method, there were five elements in the collection. After the EXTEND method is invoked, the collection contains eight elements.
Note
You can't use the EXTEND method on a null or empty collection.