EXTEND
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 或空集合。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论