在Oracle中的变量有如下几种类型:
数字型
字符型
引用型
复合型其中,复合类型包括:table 表和数组 arraytable 表又可分为: 1. 索引表
index table 2.嵌套表
nested table 一.索引表:
定义:(练习中表名均为 v_table)
type 索引表名 is table of 类型 index by binary_integer; |
使用: 因为不能直接使用 索引表名 所以先定义个变量
v_temptable_table v_table; |
索引表的特点:
① 索引表中只有两列
②只能放在内存中
③不能使用DML 操作
④使用较简单索引表练习
declare --定义索引表 type v_table is table of emp%rowtype index by binary_integer; --定义索引表变量 v_emp v_table; cursor cur_emp is select * from emp; v_num number:=0; begin --把EMP中的每一条数据放入索引表中 for v_e in cur_emp loop v_num:=v_num+1; select * into v_emp(v_num) from emp where ename=v_e.ename; end loop; --输出每一条记录的名字 for I in 1..v_emp.count loop dbms_output.put_line(v_emp(i).ename); end loop; end; / |
二.嵌套表:定义:(练习中表名均为v_nested)
使用:定义变量并初始化
v_my_nested v_nested := v_nested(‘aa’,’bb’); |
特点:
1.可以使用DML 操作
2.使用前需要初始化
3.可用EXTEND方法扩展练习:
declare type v_nested is table of varchar2(20); v_my_nested v_nested:=v_nested(''aa'',''bb'');--初始化 begin v_my_nested.extend(3); v_my_nested(5):=''ee''; end; / |
&