oracle—varray

 VARRAY(变长数组)通俗的讲就是一个存储有序的元素集合,而其每个元素都有一个相关索引,该索引相对应元素在数组中的位置。变长数组存在大小的限制,但是可以动态进行更改。

Create Type varray_phone as varray(3) of varchar2(50); 

  

1. 声明和初始化VARRAY变量

不可以直接声明一个VARRAY变量。必须先声明一个包含这个数组最大容量的类型:

  1. 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

原文地址:https://www.cnblogs.com/lucyawei/p/2942398.html