EXTEND方法¶
为了扩大嵌套表或变长数组的容量,可以使用EXTEND方法。但该方法不能用于索引表。
EXTEND方法有三种形式:
- EXTEND: 在集合的末端添加一个空元素。
- EXTEND (N): 在集合的末端添加N个空元素。
- EXTEND (M,N): 将第N个元素拷贝M份,并添加到集合的末端。
例如,下面的语句在嵌套表courses的末端添加了元素1的5个副本:
courses.EXTEND(5,1);
EXTEND操作的是集合内部大小,其中也包括被删除的元素。所以,在扩展集合大小的时候,EXTEND也会把被删除的元素考虑在内。PL/SQL会为每一个被删除的元素保留一个占位符,以便在适当的时候让我们重新使用。
示例:EXTEND方法¶
--清理环境
DROP PROCEDURE proc;
DROP TABLE tab CASCADE;
create table tab(a varchar(2));
insert into tab values('a');
CREATE OR REPLACE PROCEDURE proc AS
declare
type table_typ is table of tab.a%type;
typ table_typ;
begin
typ:=table_typ('tt');
typ.extend(5,1);
dbms_output.put_line( '集合元素总个数:' || typ.count);
end;
/
EXEC proc;
--删除
DROP PROCEDURE proc;
DROP TABLE tab CASCADE;
注解
不能使用EXTEND初始化一个空集合。同样,当我们对嵌套表或变长数组添加了NOT NULL约束之后,就不能再使用EXTEND的前两种形式了。