返回信息流一个记录类型的变量info_record,记录成员有500个field1,field2,....field500,都有值
有没有办法循环遍历输出这500个成员值info_record.field1,.....info_record.field500
这是一条镜像帖。来源:北邮人论坛 / database / #10189同步于 2016/6/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖
[问题]oracle中记录类型能遍历成员吗
byby2012
2016/6/24镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
记录设为游标类型,将500记录选入游标
declare
cursor c_info_record is select column_name from table_name where rownum<501;
info_record c_info_record%rowtype;(for循环可以不声明)
begin
for info_record in c_info_record loop
dbms_output.putline(info_record);
end loop;
end;
【 在 a990716725 的大作中提到: 】
: 记录设为游标类型,将500记录选入游标
: declare
: cursor c_info_record is select column_name from table_name where rownum<501;
: ...................
这样不行啊,不是500行记录,是这个记录有500个成员,类似于一个表有500个字段,现在要输出这个记录的成员值,info_record.field1,info_record.field2,.....info_record.field500,直接输出一个记录变量会报错,只能输出其中的成员。
本来想用动态sql里面拼接出各成员的
execute immediate 'select info_record.field'||i||' from dual' into info_temp
再输出info_temp,这样也不行,其实这样拼接表的字段可以,记录不行