2017-06-01 1 views
-3

Je suis nouveau chez Oracle, je voudrais construire une solution pour obtenir des colonnes d'un retour REF_CURSOR, et il y a quelques limitations sur la création d'objets de base de données sur DB, donc je veux courir la procédure stockée et renvoyez les données REF_CURSOR dans le script C#.Récupérer des colonnes de OUT REF_CURSOR en utilisant C#

+1

Pouvez-vous poster du code? Jetez un coup d'œil à [Comment poser une bonne question] (https://stackoverflow.com/help/how-to-ask) pour améliorer vos chances d'obtenir une réponse. – Sandman

+0

Vous devez utiliser ODP.NET, puis lire http://docs.oracle.com/cd/B19306_01/win.102/b14307/featRefCursor.htm –

Répondre

0

Votre procédure back-end pourrait être quelque chose comme ceci:

procedure my_proc(
    p_id in number, 
    p_cursor out sys_refcursor 
) is 
begin 
    open p_cursor for 
     select col1, col2, col3 
     from my_table 
     where id = p_id; 
end my_proc; 

Et puis dans votre script C# vous déclarez le 2 paramètre appel, réglage du second paramètre en sortie (direction = ParameterDirection.Output) et le type OracleDbType.RefCursor (n'oubliez pas d'ajouter les espaces de noms 'Oracle.DataAccess.Client' et 'Oracle.DataAccess.Types' au début de votre objet/classe). N'oubliez pas de fermer le lecteur de données ainsi que votre connexion, sinon votre DBA frappera à votre porte avec des yeux rouges et des crocs sanglants.