EXTEND v13
The EXTEND
method increases the size of a collection. There are three variations of the EXTEND
method. The first variation appends a single NULL
element to a collection; the syntax for the first variation is:
<collection>.EXTEND
collection
is the name of a collection.
The following example demonstrates using 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 5
elements in the collection; after the EXTEND
method was invoked, the collection contains 6
elements.
The second variation of the EXTEND
method appends a specified number of elements to the end of a collection.
<collection>.EXTEND(<count>)
collection
is the name of a collection.
count
is the number of null elements added to the end of the collection.
The following example demonstrates using 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 5
elements in the collection; after the EXTEND
method was invoked, the collection contains 8
elements.
The third 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>)
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 is being copied to the collection.
The following example demonstrates using 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 5
elements in the collection; after the EXTEND
method was invoked, the collection contains 8
elements.
Note
The EXTEND
method cannot be used on a null or empty collection.