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または空のコレクションでは使用できません。