Oracle9i + PL_SQL学习笔记<5>

索引表
索引表(index-by tables)有点类似数据库表,它由两列组成(key和value)。它的Key值类型是binary_integer,value类型就是在定义中指定的类型。和数据库表不同的是它是保存在内存中的表。
定义索引表:
Type type_name is table of element_type [not null]
     index by binary_integer;
type_name:定义的类型的名称,使用它声明索引表变量。
element_type:声明索引表中的value的数据类型。
not null是个可选项,如果限定了not null,则不能插入一个null值
index by binary_integer被用来标记索引表的,如果没有它则默认是嵌套表。
type my_table is table of varchar2(30) index by binary_integer;
    V_mt my_table;
索引表的value值可以使标量类型也可以使记录类型。
type mytable is table of treader.%ROWTYPE index of binary_integer;
向索引表中插入数据
定义好类型和变量后,就可以用mytable[key]来引用索引表里的单个元素了。mytable[key]:=value.
嵌套表
嵌套表和索引表类似,不同之处是嵌套表可以保存到数据库中,而索引表不可以。
声明:type type_name is table of element_type [not null]
嵌套赋值:
declare
type test is table of varchar2(10);
mt test:=test('fan','hao');
begin
dbms_output.put_line(mt(1)||'' ||mt(2));
end;
/

你可能感兴趣的:(oracle)