记录的定义:
declare
type rmsgdata is record
( id MESSAGES.ID%type
, GUID MESSAGES.GUID%type
, MSG_STORE_SENDER_ID MESSAGES.MSG_STORE_SENDER_ID%type
, MSG_STORE_RECIPIENT_ID MESSAGES.MSG_STORE_RECIPIENT_ID%type
, DOC_TYPE_ID MESSAGES.DOC_TYPE_ID%type
, DOC_sTATUS_ID MESSAGES.DOC_STATUS_ID%type
);
v_cmsgdata cmsgdata;
/*记录的赋值*/
/*1、对各个字段分别赋值*/ 使用“.”符号
emp_rec.emp_id := 300000000;
emp_rec.emp_name := 'Barbara';
emp_rec.emp_gender := 'Female';
/*2、使用select into语句填充一个记录的(使用隐式游标)*/
begin
select id,guid,MSG_STORE_SENDER_ID,MSG_STORE_RECIPIENT_ID,DOC_TYPE_ID,DOC_sTATUS_ID into v_cmsgdata from messages
where to_char(trunc(create_date),'yyyy-mm-dd') between '2008-07-30' and '2008-07-31';
end;
/*3、使用fetch into 语句填充一个记录(使用显示游标)*/
cursor csr_msg is select id,guid,MSG_STORE_SENDER_ID,MSG_STORE_RECIPIENT_ID,DOC_TYPE_ID,DOC_sTATUS_ID from messages
where to_char(trunc(create_date),'yyyy-mm-dd') between '2008-07-30' and '2008-07-31';
begin
open csr_msg;
loop
fetch csr_msg into v_cmsgdata;
exit when csr_msg%notfound;
dbms_output.putline('------');
end loop;
end;
/*4、用一个记录给另一记录赋值*/ 相同的数据类型
/*面向表的记录*/
declare
rmsg messages%rowtype;
begin
select *
into rmsg
from messages
where to_char(trunc(create_date),'yyyy-mm-dd') between '2008-07-30' and '2008-07-31';
dbms_output.put_line('-------');
end;
/*面向游标的*/
declare
cursor csr_msg is select * from messages
where to_char(trunc(create_date),'yyyy-mm-dd') between '2008-07-30' and '2008-07-31';
rmsg csr_msg%rowtype;
begin
open csr_msg;
loop
fetch csr_msg into rmsg;
exit when csr_msg%notfound;
dbms_output.put_line('-------');
end loop;
end;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14613712/viewspace-616669/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/14613712/viewspace-616669/