PL/SQL表
pl/sql表只有两列,其中第一列为序号列为INTEGER类型,第二列为用户自定义列.

定义:TYPE <类型名> IS TABLE OF <列的类型> [NOT NULL] INDEX BY BINARY_INTEGER;
<列的类型>可以为Oracle的数据类行以及用户自定义类型;


属性方法:
.count --返回pl/sql表的总行数
.delect --删除pl/sql表的所有内容
.delect(行数) --删除pl/sql表的指定的行
.delct(开始行,结束行) --删除pl/sql表的多行
.first --返回表的第一个INDEX;
.next(行数) --这个行数的下一条的INDEX;
.last --返回表的最后一个INDEX;

使用
示例:
DECLARE
    
TYPE mytable IS TABLE OF VARCHAR2(20) index by binary_integer; --定义一个名为mytable的PL/sql表类型;
     cursor c_1 is select ename from emp;
     n number:=1;
    
tab_1 mytable; --为mytable类型实例化一个tab_1对象;
BEGIN
    
for i in c_1
    
loop
    
     tab_1(n):=i.ename; --将得到的值输入pl/sql表
    
     n:=n+1;
   
end loop;
    
n:=1;
    
tab_1.delete(&要删除的行数); --删除pl/sql表的指定行
    
for i in tab_1.first..tab_1.count
    
loop
    
     dbms_output.put_line(n||' '||tab_1(n)); --打印pl/sql表的内容
    
     n:=tab_1.next(n);
    
end loop;
EXCEPTION
    
WHEN NO_DATA_FOUND THEN                    --由于删除了一行,会发生异常,下面语句可以接着删除的行后显示
    
     for i in n..tab_1.count+1
    
loop
    
     dbms_output.put_line(n||' '||tab_1(n));
    
     n:=tab_1.next(n);
    
end loop;
END;