1.PL/SQL 记录
简介:类似于高级语言中的结构,处理单行数据
可以使用记录自定义类型、记录变量、%RowType定义记录变量
好处:可以把这个记录集合当作一个类, 然后定义这个类的多个对象, 这个类中的字段即为
用户筛选中需要的字段. 然后对对象直接可以访问这些字段. 就像表访问字段那样
语法:tyep
type_record_nameis
record( --创建记录类型
--数据类型
)
type_record type_record_name --指定记录变量名
For example:
除查询以外,在9i以后,可以insert,update,dellete也可以引用记录变量
2.PL/SQL 集合
简介:集合类似于高级语言中的数组, 处理单列多行的数据;
包含 索引表(PL/SQL表),嵌套表(nested table),变长数组(varry)等;
--索引表
简介:索引处理PL/SQL数组类型;元素个数没有限定,下标可以为负数。
只能作为PL/SQL 复合类型使用,而不能作为表列的数据类型使用
语法:type
type_table_nameis table of
element_type
【not null】 index by
key_type;
type_table type_table_name;
--element_type索引表存放数据类型
--not null 表示不允许有空元素
--key_type(binary_integer,PLS_integer,varchar2);
For example:
--嵌套表
简介:处理PL/SQL数组类型,元素下标从开始 元素没有限制;数组元素可以是稀疏的
注:用时必须初始化构造方法,可以作为数据列表的数据类型使用;
语法:type
type_table_nameis table of
element_type;
type_tabletype_table_name;
For example:
--变长数组(varray)
简介:处理PL/SQL数组类型,可以作为表列的数据类型使用,下标从1开始 ,最大元素个数是有限制的
语法:type
type_varry_typeis
varry(size_limit)of element_type
[not null];
type_varray type_varry_type;
--size_limit是指定varry元素的最大个数;
For example:
3.PL/SQL 记录表
简介:处理多行多列数据,
For example:
declare
type emp_table_type1 is record( -- 自定义记录
ename scott.emp.ename%type,
job scott.emp.job%type
);
emp_table1 emp_table_type1;
type emp_table_type is table of emp_table_type1 --自定义数据类型
index by binary_integer;
emp_table emp_table_type;
counts number;
begin
select count(*) into counts from emp;
for i in 1..counts loop
select t.ename,t.job into emp_table1 from
(select e.*,rownum rn from emp e)t where rn=i;
emp_table(i) :=emp_table1;
end loop;