Ok, donc après beaucoup plus de recherches, j'ai trouvé la solution.
Le code original utilisait ExecuteReader. Je l'ai changé pour exécuter ExecuteNonQuery.
Je passe les mêmes paramètres et types que moi (2 entrées, 2 sorties, dont une est une chaîne, une un refcursor).
Lorsque ExecuteNonQuery s'exécute, je peux voir la valeur du 3ème paramètre (la chaîne). puis je fais ce qui suit :
OracleDataReader dr = ((OracleRefCursor)pRefcursor.Value).GetDataReader();
Ensuite, je peux faire mes boucles habituelles avec le dr ! Bonne journée !