我想你是想用oracle的过程返回一个记录集吧? 给你个例子参考一下:--包头
create or replace package pkg_test
as
  type myCursor is ref cursor;
  function get(p_id number) return myCursor;
end pkg_test;
--包体
create or replace package body pkg_test 
as
--******************************************************************
  --输入ID 返回记录集的函数
  function get(p_id number) return myCursor is
     rc myCursor;
     strsql varchar2(200);
  begin
     if p_id=0 then 
        open rc for select a.user_name from fnd_user a ;  
     else
        strsql:='select a.user_name from fnd_user a where a.user_id=:p_id';
        open rc for strsql using p_id;
     end if;
     return rc;  
     end get;
end pkg_test;

解决方案 »

  1.   

    to  dinya2003(OK)还是你快
      

  2.   

    谢谢dinya2003(OK)!
    现在有遇到个问题,就是返回记录集的过程(过程名为:p_get)创建好了,但是在.NET中新建数据集文件后,把过程p_get拖放到数据集中,出现错误:“无法从 此对象解释XML架构”.请高手指点一下,到底应该怎么用返回的记录集呢?
      

  3.   

    谢谢dinya2003(OK),yujiabian(流氓兔子雨)!
    初学报表和Oracle,还请大家多多指教!
      

  4.   

    在.net中直接用DataSet来写.定义一个DataSet来接受数据集.因为p_get对.net来说不是一个数据集,只有在执行了以后返回的部分才是数据集. 所以要在程序中自己控制.
      

  5.   

    TO:dinya2003(OK)
    能不能给段实例代码?刚接触.net,对你所说的还都不熟悉,谢谢!
      

  6.   

    我写的过程是这样的:
    CREATE OR REPLACE PACKAGE pkg_oldrailin
    AS
       TYPE myrctype IS REF CURSOR;
    END pkg_oldrailin;
    CREATE OR REPLACE PROCEDURE get_oldrailin
       (p_year IN VARCHAR2, p_rc OUT pkg_oldrailin.myrctype)
    AS
    ......--下面的省略 !上面的过程get_oldrailin中的OUT参数p_rc是REF CURSOR,而C#.net中需要的是数据集,到底在C#.net中怎么写代码呢?
      

  7.   

    我有半年多没有用过水晶报表了.现在也没有例子程序,你可以自己到网上搜一下.其实在用.net的时候大多数是在用程序控制数据的处理.   水晶报表感觉没有active report用起来方便.可以到网上搜一下关于水晶报表的用法.