1.PL/SQL 记录
简介:类似于高级语言中的结构,处理单行数据
可以使用记录自定义类型、记录变量、%RowType定义记录变量
好处:可以把这个记录集合当作一个类, 然后定义这个类的多个对象, 这个类中的字段即为
用户筛选中需要的字段. 然后对对象直接可以访问这些字段. 就像表访问字段那样
语法:tyep
type_record_name is
record( --创建记录类型
--数据类型
)
type_record type_record_name --指定记录变量名
For example:
-- Created on 2012/10/5 星期五 by MM
declare
type emp_record_type is record(
v_no emp.empno%type,
v_name emp.ename%type,
v_sal emp.sal%type
);
emp_record emp_record_type;
begin
select empno,ename,sal into emp_record from emp where empno=7369;
dbms_output.put_line(emp_record.v_no);
dbms_output.put_line(emp_record.v_name);
dbms_output.put_line(emp_record.v_sal);
end;
除查询以外,在9i以后,可以insert,update,dellete也可以引用记录变量
2.PL/SQL 集合
简介: 集合类似于高级语言中的数组, 处理单列多行的数据;
包含 索引表(PL/SQL表),嵌套表(nested table),变长数组(varry)等;
--索引表
简介:索引 处理PL/SQL数组类型;元素个数没有限定,下标可以为负数。
只能作为PL/SQL 复合类型使用,而不能作为表列的数据类型使用
语法:type
type_table_name is 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_name is table of
element_type;
type_table type_table_name;
For example:
--变长数组(varray)
简介:处理PL/SQL数组类型,可以作为表列的数据类型使用,下标从1开始 ,最大元素个数是有限制的
语法:type
type_varry_type is
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;