我编了一个ORACLE包,里面有一函数,该函数返回一个结果集,经测试没有问题,
 我在一个WEB页面中,用C#怎样调用该函数?具体格式是什么?我如果把它当作存储过程,则会报错“没有这样的存储过程”,现贴上包的内容和C#调用部份,请各位高手指点,请给出详细代码,谢谢!!!!!
--包头
CREATE OR REPLACE PACKAGE qmys
as
  type myCursor is ref cursor;
    function bmysfxb1(du_year in out varchar2,du_month in out varchar2,du_dwbm varchar2)
   return myCursor ;
end qmys;
--包体
CREATE OR REPLACE PACKAGE BODY qmys
as
  --输入ID 返回记录集的函数
       
  function bmysfxb1(du_year in out varchar2 ,du_month in out varchar2 ,du_dwbm varchar2) 
      return myCursor is
      bmysfxb1 myCursor;
      s_sql varchar2(200);
      type fang_type is table of varchar2(200);
      fang_ysmc fang_type;
      mei_exception1 exception  ;--用作异常变量
      
     TYPE  mei_type IS REF CURSOR;
     mei_cursor mei_type;
     i number(10):=0;
     sqls varchar2(200);     begin
--根据传递来的年、月、部门编码,来对预算执行使用情况进行分析
       du_year:=ltrim(rtrim(du_year));
       du_month:=ltrim(rtrim(du_month));
       
      if du_year is null or du_month is null or du_dwbm is null or length(du_year) <>4 or length(du_month)<>2 then
        raise mei_exception1;
      end if;
  
         sqls := substr(du_dwbm,0,4);
        s_sql :=' select zbxx_mc from tab_ys_zbxx where dqbh=:du_dqbh';
         
         open mei_cursor for s_sql using sqls;
         return mei_cursor;
   EXCEPTION 
           when mei_exception1 then
                  RAISE_APPLICATION_ERROR(-20000,'向存储过程中传入的参数有误,请检查!'||sqlerrm); 
     
      
      end bmysfxb1;    
     
end qmys;
--C#中调用(格式不对呀!!,请指点呀!!) OracleDataAdapter myAdapter = new OracleDataAdapter();
  OracleConnection myConnection = new OracleConnection(cn);
myConnection.Open();
DataSet mySet = new DataSet();
OracleCommand myCommand = new OracleCommand("qmys.bmysfxb1",myConnection);
myCommand.CommandType = CommandType.StoredProcedure;
myCommand.Parameters.Add("du_year",OracleType.VarChar);
 myCommand.Parameters["du_year"].Value="2004";
myCommand.Parameters.Add("du_month",OracleType.VarChar);
myCommand.Parameters["du_month"].Value="09";
myCommand.Parameters.Add("du_dwbm",OracleType.VarChar);
myCommand.Parameters["du_dwbm"].Value="1010100101";

             myAdapter.SelectCommand = myCommand;
myAdapter.Fill(mySet);