Oracle获取结果集是否有值,在R中调用Oracle存储过程 – 如何获取结果集?

我不能专门用R来帮助你,但你说你在调用使用OUT params作为sys_refcursors的Oracle程序时遇到了问题.您还表明此功能可能尚未实施.但是,你可以说,你可以“从表中选择列”就好了.

因此,我建议将过程更改为流水线函数调用,然后进行简单的选择以从Oracle获取数据.一个小例子:

CREATE OR REPLACE package pkg1 as

type t_my_rec is record

(

num my_table.num%type,val my_table.val%type

);

type t_my_tab is table of t_my_rec;

function get_recs(i_rownum in number)

return t_my_tab

pipelined;

END pkg1;

包体:

create or replace package body pkg1 as

function get_recs(i_rownum in number)

return t_my_tab

pipelined

IS

my_rec t_my_rec;

begin

-- get some data

-- implement same business logic as in procedure

for my_rec in (select num,val from my_table where rownum <= i_rownum)

loop

pipe row(my_rec);

end loop;

return;

end get_recs;

end pkg1;

select * from table(pkg1.get_recs(3));

要么:

select num,val from table(pkg1.get_recs(3));

这将返回3行数据,就像过程将返回相同的数据一样.只有这样你才能从select语句中获得它(你似乎能够从R处理它).

希望有所帮助.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值