Type aTypt is record(
a char(1),
b number(2),
c varchar2(3)
);
aRecord aTypt;
cursor cur is
/* 情况1*/
select 'a' a,'ccc' c from dual;
/*
* 如果cursor是这样,情况2
* cursor cur is
* select 'a',12,'ccc' from dual;
*/
rec cur%rowtype;
begin
open cur;
loop
fetch cur into rec;
exit when cur%notfound;
/*
*对应情况1
* 如果写成aRecord := rec;因为他们不并不对应。
*/
aRecord.a := rec.a;
aRecord.c := rec.c;
/*
* 对应情况2,
* 用 aRecord := rec;因为从rec取出的值和type是一致的
*/
-- aRecord := rec;
end loop;
aRecord.b := 21;
dbms_output.put_line(aRecord.a);
dbms_output.put_line(aRecord.b);
dbms_output.put_line(aRecord.c);
end;