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
注意:记录之间可以之间赋值 myrecord:=myrecord1; 前提是两个记录是同一个TYPE的变量。
首先,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/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22333206/viewspace-612690/