Ok, jadi setelah menggali lebih banyak, saya menemukan solusinya.
Kode asli menggunakan ExecuteReader. Saya telah mengubahnya untuk menjalankan ExecuteNonQuery.
Saya melewatkan parameter dan tipe yang sama seperti yang saya lakukan (2 input, 2 output, salah satunya adalah string, satu refcursor).
Ketika ExecuteNonQuery berjalan, saya dapat melihat nilai param ke-3 (string). maka saya melakukan hal berikut:
OracleDataReader dr = ((OracleRefCursor)pRefcursor.Value).GetDataReader();
Kemudian saya bisa melakukan loop biasa saya dengan dr! Hari-hari bahagia!