extend
是一个过程,用于添加元素位置到变长数组或嵌套表的末尾,并将其设置为NULL。
extend
的形式如下:
collection.extend()
:添加一个NULL元素到集合尾部。collection.extend(number)
:添加number个NULL元素到集合尾部。
extend
对集合内部大小进行操作。如果 delete
删除一个元素但为其保留占位符,则 extend
会认为该元素存在。
示例
以下是一个extend
和delete
的结合使用的示例。
DECLARE
TYPE nt_type IS TABLE OF NUMBER;
nt nt_type := nt_type(11, 22, 33);
PROCEDURE print(nt nt_type) IS
i NUMBER;
BEGIN
i := nt.FIRST;
IF i IS NULL THEN
RAISE NOTICE 'nt 为空';
ELSE
WHILE i IS NOT NULL LOOP
RAISE NOTICE 'nt.(%) = %', i, nt(i);
i := nt.NEXT(i);
END LOOP;
END IF;
RAISE NOTICE '---';
END;
BEGIN
print(nt); -- 打印三个元素
nt.DELETE(3); -- 删除第三个元素
print(nt);
nt.EXTEND; -- 添加一个 NULL 元素到嵌套表尾部,由于DELETE并不会删除位置,因此会添加在第四位
print(nt);
END;
结果显示如下:
NOTICE: nt.(1) = 11
NOTICE: nt.(2) = 22
NOTICE: nt.(3) = 33
NOTICE: ---
NOTICE: nt.(1) = 11
NOTICE: nt.(2) = 22
NOTICE: ---
NOTICE: nt.(1) = 11
NOTICE: nt.(2) = 22
NOTICE: nt.(4) = <NULL>
NOTICE: ---
DO
文档内容是否对您有帮助?