For those interested in using ODP.NET implicit REF Cursors in Oracle DB 12c, the syntax is different from what was available in Oracle 11g. Here's a 12c-specific example:
=======================
Create or Replace PROCEDURE GetEmpAndDept
AS
EMPS sys_refcursor;
DEPTS sys_refcursor;
BEGIN
OPEN EMPS for SELECT empno, ename from emp;
dbms_sql.return_result(EMPS);
OPEN DEPTS for SELECT deptno, dname from dept;
dbms_sql.return_result(DEPTS);
END;
=======================
// C#
OracleConnection conn = new OracleConnection("User Id=scott; Password=tiger);
conn.Open(); // Open the connection to the database
// Create the command object for executing cmdTxt
OracleCommand cmd = new OracleCommand("GetEmpAndDept", conn);
cmd.CommandType = CommandType.StoredProcedure;
OracleDataReader rdr = cmd.ExecuteReader();
while(rdr.Read())
Console.WriteLine("{0}\t{1}", rdr.GetInt32(0), rdr.GetString(1) );
rdr.NextResult();
while(rdr.Read())
Console.WriteLine("{0}\t{1}", rdr.GetInt32(0), rdr.GetString(1) );