EXTEND¶
EXTEND メソッドは、コレクションのサイズを増やします。 EXTEND メソッドには3つのバリエーションがあります。最初のバリエーションは、単一の NULL 要素をコレクションに追加します。最初のバリエーションの構文は次のとおりです。
<collection>.EXTEND
collection はコレクションの名前です。
次の例は、 EXTEND メソッドを使用して単一のヌル要素をコレクションに追加する方法を示しています。
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 は、コレクションの最後に追加されるヌル要素の数です。
次の例は、 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 要素が含まれます。
注釈
EXTEND メソッドは、nullまたは空のコレクションでは使用できません。