Чтение двух таблиц, возвращаемых хранимой процедурой Oracle с использованием C # - PullRequest
0 голосов
/ 09 апреля 2019

У меня есть код 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;

Мне нужен способ чтения обеих данных таблицы в набор данных.

...