日期:2014-05-17  浏览次数:20943 次

cursor 是否可以作为参数传递

我的一个procedure a中,open一个cursor,然后我想把cursor的某一条记录传递给procedure b

procudure a
begin
 for iRec in cr_cursor loop
  b(iRec);
  ...
 end loop;
end;

procedure b(c cursor)
begin
  id := c.id;
  name := c.name;
  ...
end;



代码大体如上,不知道可不可行,其实可以直接传递cursor值得
b(iRec.id,iRec.name...)

不过传递的参数可能随着应用改变而改变,不方便
------解决方案--------------------
完全可以,REF CURSOR。
http://blog.csdn.net/fw0124/article/details/6626370