VARRAY(变长数组)通俗的讲就是一个存储有序的元素集合,而其每个元素都有一个相关索引,该索引相对应元素在数组中的位置。变长数组存在大小的限制,但是可以动态进行更改。
Create Type varray_phone as varray(3) of varchar2(50);
1. 声明和初始化VARRAY变量
不可以直接声明一个VARRAY变量。必须先声明一个包含这个数组最大容量的类型:
- type dir_array is varray(10000) of bill_files.directory%type;
然后,你就可以用这个类型声明VARRAY变量:
indirectory dir_array;
对这个数组进行操作以前,必须先初始化该数组。你既可以在声明它的时候对其初始化,也可以在声明后对其赋值。
下面展示了在声明的同时对其进行初始化:
indirectory dir_array:=dir_array('','');
2. 从指定的条目处取值
把条目的数目作为下标。下标可以是返回整数值(该值小于或等于数组条目数)的任意表达式,如:
dir:=indirectory(3);
dir:=indirectory(i+1);
3. 得到数组的容量
indirectory.count(); 得到当前数组的实际大小
indirectory.limit(); 得到当前数组的最大值
4. 遍历VARRAY中的值
for i in 1…indirectory.count() loop
or
for i in indirectory.first()…indirectory.last() loop
or
PRIOR(n)和NEXT(n)方法,这两个方法分别返回给定条目的前一个和后一个条目的下标
5. 对VARRAY的扩展缩减
indirectory.extend(k) 在VARRAY的最后追加k个新的条目。如果k没有被指定,只增加一个条目。新增的条目没有值(默认为NULL),但是你可以对它们进行初始化。
indirectory.TRIM(k) 在VARRAY的尾部删除最后k个条目。当k没有被指定时,删除最后一个条目。已被删除的条目的值将丢失。
indirectory.DELETE() 删除数组中的所有条目,并把其容量设置为0