【发布时间】:2013-12-27 12:56:54
【问题描述】:
declare
cursor lc is
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
where a.pr=b.id
and b.parent_id != 0
and a.partitionid <= 308
and a.partitionid >= 302
and a.pr in (91,80)
GROUP BY a.pr, b.name, a.lin
order by d desc) ;
rec lc%ROWTYPE;
BEGIN
open lc;
loop
FETCH lc into rec;
dbms_output.put_line(rec.pr);
exit when lc%NOTFOUND;
end loop;
close lc;
END;
上面的语句对我来说很好。我无法找到任何有希望的东西是改变“in”语句之后的值,即a.pr in (91,80)
我在这里手动列出了这些值,但我想将它作为a.pr column 的数字数组传递给光标。简而言之,我想做a.pr = idlist idlist 是一个数组。请任何人告诉我我的想法是否可行。
【问题讨论】:
-
你能告诉你使用什么数据库,Oracle 10g 还是 11g ?
标签: oracle parameters plsql oracle11g cursor