使用C#读取Oracle存储过程返回的两个表

时间:2019-04-09 06:29:18

标签: c# oracle procedure

我有执行存储过程的C#代码。该过程执行得很完美,在数据集中我也可以找到预期的两个表。但是表中没有行。

我的C#代码:

using (OracleConnection OraConx = new OracleConnection())
{
    InitOraConn(OraConx);

    string CommandText = "Stored procedure";

    OracleDataAdapter oda = new OracleDataAdapter (new OracleCommand(CommandText, OraConx));
    oda.SelectCommand.CommandType = CommandType.StoredProcedure;

    oda.SelectCommand.Parameters.Add("I_QTR_YR", qtrYr);
    oda.SelectCommand.Parameters.Add("I_EMP_ID", empID);
    oda.SelectCommand.Parameters.Add("o_result", OracleDbType.RefCursor)
                                .Direction = ParameterDirection.Output;
    oda.SelectCommand.Parameters.Add("p_result", OracleDbType.RefCursor)
                                .Direction = ParameterDirection.Output;
    oda.SelectCommand.Connection = OraConx;

    DataSet ds = new DataSet();
    oda.Fill(ds);

    return ds;
}

我的存储过程:

PROCEDURE sel_data_for_report (
      i_emp_id     IN       varchar2(20),
      i_qtr_yr     IN       varchar2(20),
      o_result     OUT      sys_refcursor,
      p_result     OUT      sys_refcursor
   )
   IS
   BEGIN
    OPEN o_result FOR
         SELECT *
           FROM table1
         WHERE  qtr_yr = i_qtr_yr

OPEN p_result FOR
    SELECT * from table2
           where emp_id = i_emp_id     
            and qtr_yr = i_qtr_yr     ;

   END sel_data_for_report;

我需要一种将两个表数据都读入数据集的方法。

0 个答案:

没有答案