EXTEND¶
</ div>
EXTENDメソッドは、コレクションのサイズを増やします。
EXTENDメソッドには3つのバリエーションがあります。最初のバリエーションは、単一のNULL要素をコレクションに追加します。最初のバリエーションの構文は次のとおりです。
<collection>.EXTEND
collectionはコレクションの名前です。
次の例は、EXTENDメソッドを使用して、コレクションに単一のnull要素を追加する方法を示しています。
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は、EXTENDメソッドの前に、コレクションに5要素があったことを示します。
EXTENDメソッドが呼び出された後、コレクションには6要素が含まれます。
EXTENDメソッドの2番目のバリエーションは、指定された数の要素をコレクションの末尾に追加します。
<collection>.EXTEND(<count>)
collectionはコレクションの名前です。
countは、コレクションの最後に追加されるnull要素の数です。
次の例は、EXTENDメソッドを使用してマルチプルのnull要素をコレクションに追加する方法を示しています。
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は、EXTENDメソッドの前に、コレクションに5要素があったことを示します。
EXTENDメソッドが呼び出された後、コレクションには8要素が含まれます。
EXTENDメソッドの3番目のバリエーションは、特定の要素の指定された数のコピーをコレクションの末尾に追加します。
<collection>.EXTEND(<count>, <index_number>)
collectionはコレクションの名前です。
countは、コレクションの最後に追加される要素の数です。
index_numberは、コレクションにコピーされる要素の添字です。
次の例は、EXTENDメソッドを使用して、2番目の要素のマルチプルのコピーをコレクションに追加する方法を示しています。
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は、EXTENDメソッドの前に、コレクションに5要素があったことを示します。
EXTENDメソッドが呼び出された後、コレクションには8要素が含まれます。
!!! Note * EXTENDメソッドは、
nullまたは空のコレクションでは使用できません。