PL/SQL复合类型

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;

 
 






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值