有一个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()不行,是不是需要一个什么转换函数?
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()不行,是不是需要一个什么转换函数?
解决方案 »
- pl/sql 关于层次树的部分语句不太懂
- oracle中for循环生成新数据
- 成绩单中sql语句如何写?
- update t1 set CTNP= '" & vsCTNP & "' where recid='000001",更新失败,提示“字符串太长”
- 这样的统计功能的sql语句怎么写,急!!!!!!!!
- 接着刚才的问题!存储过程!
- 如何实现条件分组求和,类似SQL的case airline when '880' then pax when 'OTH' then 0 end功能
- 请问这个递规查询怎么做!
- proc的简单问题,求教
- 请问有没有用过Jdeveloper的
- 请问:数据库绝本文件是什么?
- 着急啊!!如何根据表名从系统表里面取出主键对应的字段名称??
不知道是不是你想要的。
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;
select mytest() from dual
在datagrid里只显示出一个单元格,里面写的是(CURSOR)如果按F5的话,在Script Output中到是可以显示出所有数据。但是我需要的是在F9的datagrid中显示出所有数据,不然我没有办法在c1report中使用
你所说的Pipelined Table Functions是不是先定义一个object,再定义一个table of object,然后在function中使用pipe row()?
这样的方式我会,但是它太麻烦了,因为要一旦返回的字段要修改,就要修改那个object,非常不方便,所以最后还是在考虑cursor