企业库调用ORACLE存储过程时返回一个结果集我知道怎么做,但是如何返回多个结果集呢?
返回一个结果集的过程:
create or replace procedure P_Sel_TopCount(in_top    in number,
                                           out_count out number,
                                           cur_out out sys_refcursor) is
  --查询指定记录条数的数据,并返回总共记录数
begin
  SELECT COUNT(*) into out_count FROM userinfo;
  open cur_out for
    SELECT * FROM userinfo where id < in_top;
end P_Sel_TopCount;c#代码:
Database db = GetDataBase();
            DbCommand dbcmd = db.GetStoredProcCommand("P_Sel_TopCount");
            db.AddInParameter(dbcmd, "@top", DbType.Int32, 10);
            db.AddOutParameter(dbcmd, "@count", DbType.Int32, 4);
            DataSet ds = db.ExecuteDataSet(dbcmd);
            this.dataGridView1.DataSource = ds.Tables[0];但是如果我想返回多个结果集,也就是说在过程里返回多个游标,用企业库如何实现?当然,如果是普通的写法我知道可以用多个游标,可是企业库好像不支持多个游标,一个游标的名字还必须是cur_out 郁闷。
谁知道,帮忙说说

解决方案 »

  1.   

     dbCommand.Parameters.Add(new OracleParameter("CUR_OUT", OracleType.Cursor){Direction = ParameterDirection.Output}); 
    dbCommand.Parameters.Add(new OracleParameter("CUR_OUT1", OracleType.Cursor){Direction = ParameterDirection.Output}); 
    dbCommand.Parameters.Add(new OracleParameter("CUR_OUT2", OracleType.Cursor){Direction = ParameterDirection.Output}); 
    得到结果对应:
    ds.tables[0]
    ds.tables[1]
    ds.tables[2]