有个函数使用游标返回数据集
type refCursorType is REF CURSOR; 
function fun_cz
    ()
    return refCursorType
is
  p_OutCursor refCursorType;
begin        
 open p_OutCursor for select f1,f2,f3 from t1;
 return p_OutCursor;
end fun_cz;
然后我想使用select把数据集显示出来,这select应该怎样写?
在sql plus里用select * from (select fun_cz() from dual) 到是能显示出数据集可是显示的确是dual里的字段
所以select f1,f2,f3 from (select fun_cz() from dual)就会报找不到f1 f2 f3字段的错
刚从mssql转到oracle很多闹不明白的地方~~~~~mssql里面很简单的问题到oracle咋就这样麻烦:( 

解决方案 »

  1.   

    http://blog.csdn.net/wiler/archive/2007/03/12/1526520.aspx
      

  2.   

    --函数必须有输入值后才可返回。select fun_cz(输入变量或字段) from dual;
      

  3.   

    用sqlplus可以:sql>var x is refcursor
    sql>:x := func();
    sql>print :x;select 不能直接从ref cursor取数据的
      

  4.   

    有输入值我就是举个例子懒得往上打,输入值太多了~~~~~~
    我主要是问select 取数据的问题
    wiler帮我解决了3q:)