问题描述
如何从sys_refcursor中获取仅几列并将其作为输入传递给另一个proc?
我有一个proc,它返回sys_refcursor中的结果集。必须将此输出中的列作为输入传递给另一个proc。
例如:
proc_a (名称在varchar2中,详细说明sys_refcursor) -> 这是需要输出的过程。
“详细信息” 中的列是- (Id,部门,mail_id,active_yn)
proc_b (编号中的id,varchar2中的部门,结果编号)-> 输入id和部门将从proc_a的输出 “详细信息” 中获得。
我有一个proc,它返回sys_refcursor中的结果集。必须将此输出中的列作为输入传递给另一个proc。
例如:
proc_a (名称在varchar2中,详细说明sys_refcursor) -> 这是需要输出的过程。
“详细信息” 中的列是- (Id,部门,mail_id,active_yn)
proc_b (编号中的id,varchar2中的部门,结果编号)-> 输入id和部门将从proc_a的输出 “详细信息” 中获得。
专家解答
我不知道从游标变量中获取列的子集的方法。如果你想要更多或更少的列,你应该改变光标定义。
如果您想简化代码,可以使用与游标具有相同结构的记录变量。并引用您想要的属性:
如果您想简化代码,可以使用与游标具有相同结构的记录变量。并引用您想要的属性:
create table t ( c1 int, c2 int ); insert into t values ( 1, 2 ); commit; declare cur sys_refcursor; rec t%rowtype; begin open cur for select * from t; fetch cur into rec; dbms_output.put_line ( 'C1 = ' || rec.c1 ); close cur; end; / C1 = 1复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。