EXTEND方法用于增加集合的大小。

EXTEND方法存在三个变体。第一个变体将一个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方法的第二个变体将指定元素数量附加到集合的末尾。

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方法的第三个变体将特定元素的指定数量副本附加到集合的末尾。

collection.EXTEND(count, index_number)
  • collection是集合的名称。
  • count是添加到集合末尾的元素数量。
  • index_number是要复制到集合中的元素的下标。

以下示例演示如何使用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(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或空集合。