怎样在sql中使用function返回的cursor
有一个function,定义如下:
type cur is ref cursor;
function mytest return cur
is
c cur;
begin
open c for (select * from mytable);
return c;
end;
非常简单,就是在function中返回了一个cursor。但是现在我需要在sql(注意,是普通的sql,不是pl/sql,也不是在java,c#等中使用)中使用这个cursor,打印出它的内容,这个sql怎么写?
直接使用
select * from mytest()不行,是不是需要一个什么转换函数?
------解决方案--------------------不太明白你的意思,是不是你想要的是个sql语句?
------解决方案--------------------select mytest() from dual;
不知道是不是你想要的。
------解决方案--------------------一个范例:
create package pkg_test
is
type cur is ref cursor;
end;
create or replace function mytest return pkg_test.cur
is
c pkg_test.cur;
begin
open c for select * from emp;
return c;
end;
select mytest() from dual;
------解决方案--------------------你可以使用Pipelined Table Functions