【发布时间】:2014-01-03 14:07:13
【问题描述】:
CREATE TYPE prList AS TABLE OF pr;
create or replace
procedure qLink(ret out sys_refcursor)
IS
myPrList prList := prList();
open ret for
select *
from (select a.lin, a.pr,
b.name, sum(a.up) as u,
sum (a.d) as d
from li_dy_4 a,
p_list b,
TABLE(CAST(myPrList as prList)) my_list
where a.pr=b.id
and b.parent_id != 0
and a.partitionid <= 308
and a.partitionid >= 302
and a.pr = my_list.pr
GROUP BY a.pr, b.name, a.lin
order by d desc) ;
BEGIN
myPrList := prList ( pr(91),
pr(80));
END;
variable rc refcursor;
exec qlink( :rc );
print rc;
[/代码]
上面的示例代码没有返回数据,只显示表格字段。我在这里错过了什么? 但是如果没有使用 refcursor 一切都可以正常工作,即使我尝试将数组作为列表传递它也可以与上面的代码一起使用,请帮助...
【问题讨论】:
-
你的数据库是 Oracle 吗?
-
您发布的内容有问题;你有两个
begin和一个end。在查询中使用myPrList后,您似乎填充了它,但是对于不完整的代码,有点难以确定? -
抱歉错了...
-
@mohaskuar 尝试将变量 ret 设置为
qLink(ret in out sys_refcursor)也,在myPrList赋值后放置 open 语句;
标签: oracle stored-procedures sys-refcursor