My God, it doesn't take a rocket scientist to figure this out that a
result set is returned automatically out of the Stored Procedure, and is
accessible via datareader.
http://download.oracle.com/docs/cd/B19306_01/win.102/b14307/extenBoth.htm
I don't know how you can make up some stuff that's not there, and you
are missing the boat. If there was something else other than what you're
seeing about how that result set is being returned, then you should have
found it log ago. In that one example that is in that link above, the
result set was one row with one field in the row of the result set.
It could have been like this too.
SELECT DEPTNO FROM EMP WHERE EMPNO > :0";
Then a whole bunch of rows would have been retuned in the result set
with each row in the result set having a DeptNo.
I don't know where you think that returned result set is going to be,
other than, dead in your face in your example and the example above that
has been provided to you.
OracleDataReader rdr = cmd.ExecuteReader();
The retuned result set is in the RDR. Now, if you need to go beyond
that, then dump the rows of the result set into an arraylist or strong
typed collection and return either one of them, by using the datareader.
Sometimes, one has to think outside the box.
I am going to give up on you now has your head is 10 bricks hard.