-- Start
可变数组是容量可以变化的数组,但不能超过最大容量。和其他语言不同,可变数组的索引从 1 开始。另外我们不能比较两个可变数组,但是可以检查可变数组是否为 NULL。
DECLARE
-- 定义一个可变数组类型 MY_ARRAY,它的最大容量是100,元素类型是 VARCHAR2
TYPE MY_ARRAY IS VARRAY(100) OF VARCHAR2(15);
-- 定义一个类型为 MY_ARRAY 的可变数组变量 TEST1, 此时 TEST1 是 NULL
test1 MY_ARRAY;
-- 定义一个类型为 MY_ARRAY 的可变数组变量 TEST2, 此时 TEST2 是一个空数组
test2 MY_ARRAY := MY_ARRAY();
-- 定义一个类型为 MY_ARRAY 的可变数组变量 TEST3, 此时 TEST3 是一个有4个元素的数组
test3 MY_ARRAY := MY_ARRAY('element 1', 'element 2', 'element 3', 'element 4');
BEGIN
test3.EXTEND(); -- 添加 1 个 NULL 元素到末尾
test3.EXTEND(3); -- 添加 3 个 NULL 元素到末尾
test3.EXTEND(3, 1); -- 复制元素1的值, 添加 3 个到末尾
DBMS_OUTPUT.PUT_LINE('