Ok, så efter mycket mer grävande hittade jag lösningen.
Den ursprungliga koden använde ExecuteReader. Jag har ändrat den för att köra ExecuteNonQuery.
Jag skickar in samma parametrar och typer som jag gjorde (2 ingångar, 2 utgångar, varav en är en sträng, en en återgång).
När ExecuteNonQuery körs kan jag se värdet på den tredje param (strängen). då gör jag följande:
OracleDataReader dr = ((OracleRefCursor)pRefcursor.Value).GetDataReader();
Då kan jag göra mina vanliga loopar med dr! Glada dagar!