-------------------------------------------------------------------------------------
变长数组 varray
它是一种用于处理PL/SQL数组的数据类型,它也可以使用表列的数据类型使用
它的元素下标以1开始,并且最大元素个数是有限制
定义VARRAY的语法如下:
--not null表示不能引用空元素
TYPE TYPE_NAME IS VARRAY(SIZE_LIMIT) OF ELEMENT_TYPE [NOT NULL]; --SIZE_LIMIE表示VARRAY的元素个数
IDENTIFIER TYPE_NAME;
在使用VARRAY时,必须要使用构造方法初始化VARRAY元素,示例如下;
DECLARE
TYPE ENAME_TABLE_TYPE IS VARRAY(20) OF EMP.ENAME%TYPE;
ENAME_TABLE ENAME_TABLE_TYPE:=ENAME_TABLE_TYPE('A','B');
下面兴例说明使用VARRAY的方法:
示例一:在PL/SQL块中使用VARRAY
DECLARE
TYPE ENAME_TABLE_TYPE IS VARRAY(20) OF EMP.ENAME%TYPE;
ENAME_TABLE ENAME_TABLE_TYPE:=ENAME_TABLE_TYPE('MARY');
BEGIN
SELECT ENAME INTO ENAME_TABLE(1) FROM EMP WHERE EMPNO=&NO;
DBMS_OUTPUT.PUT_LINE('EMPLOYEE:'||ENAME_TABLE(1));
END;
/
示例二:在表列中使用VARRAY
在表列中使用VARRAY,必须使用CREATE TYPE建立VARRAY类型,在表列中使用它的示例如下:
create type phone_type is varray(10) of varchar2(10);
/
create table employee(
id number,
name varchar2(10),
phone phone_type);
/