ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 关于复合数据类型--记录(record)

关于复合数据类型--记录(record)

原创 Linux操作系统 作者:liuzhiqiangoracle 时间:2009-08-19 15:10:00 0 删除 编辑
pl/sql中的复合数据类型有两种:记录、集合。记录由不同的域组成,集合由不同的元素组成。
首先,pl/sql记录:
记录由不同的域构成,域可以是简单数据类型也可以是其他记录类型。记录可以看成表中的行,而域则相当于一行中的不同字段。记录与记录中的某域都可以被应用或单独赋值。记录的用法
1,创建记录:
  显式定义记录:TYPE record_type IS RECORD (field_list);--field_list是用逗号分割的列表
  隐式定义记录:myrecord TYPE%ROWTYPR;--TYPE可以是一个table(表)也可以是一个cursor(游标)
              域定义: field_name field_type(field_size) --于table中字段的定义类似
                  例子: DECLARE  --定义记录,并创建记录变量,随后引用记录并为记录赋值
                               TYPE  my_record IS RECORD(id number, name varchar2(20),ct t.t%TYPE);--t.t是t表的t列
                                myrecord my_record;
                               begin
                                   myrecord.id:=123;
                                   myrecord.name:='liuzhiqiang';
                                   select 123,'liuzhiqiang',t.t
                                        into myrecord.id, myrecord.name,myrecord.ct
                                      from t t
                                   where t.t=1;
                                   --此处还可
                                   select 123,'liuzhiqiang',t.t
                                        into myrecord--因为于myrecord的域完全匹配
                                      from t t
                                   where t.t=1;
                               end;

-------------------------------------------------------------------------------------------------
 DECLARE
  CURSOR mycursor(par number) IS
    select 1, 'liuzhiqiang', t.t from t_test t where t.t < par;
  myrecords mycursor%rowtype;
begin
  open mycursor(10);
  loop
    fetch mycursor
      into myrecords;
    exit when mycursor%notfound;
    dbms_output.put_line(myrecords.t);
  end loop;
  close mycursor;
end;

注意:记录之间可以之间赋值 myrecord:=myrecord1;  前提是两个记录是同一个TYPE的变量。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22333206/viewspace-612690/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 关于结果集
请登录后发表评论 登录
全部评论

注册时间:2009-08-18

  • 博文量
    9
  • 访问量
    9579