Skip to Main Content

ODP.NET

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Using Implicit REF Cursor in Oracle DB 12c

Alex Keh-OracleOct 6 2014 — edited Dec 26 2014

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) );


Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jan 23 2015
Added on Oct 6 2014
8 comments
2,430 views