Ok, vì vậy sau khi đào sâu hơn rất nhiều, tôi đã tìm ra giải pháp.
Mã ban đầu đang sử dụng ExecuteReader. Tôi đã thay đổi nó để chạy ExecuteNonQuery.
Tôi chuyển cùng các tham số và kiểu như tôi đã làm (2 đầu vào, 2 đầu ra, một trong số đó là chuỗi, một là con trỏ chuột).
Khi ExecuteNonQuery chạy, tôi có thể thấy giá trị của tham số thứ 3 (chuỗi). sau đó tôi làm như sau:
OracleDataReader dr = ((OracleRefCursor)pRefcursor.Value).GetDataReader();
Sau đó, tôi có thể thực hiện các vòng lặp thông thường của mình với dr! Những ngày hạnh phúc!