2010-06-24 20 views
0

J'utilise DB2 9.7 pour Linux. La procédure stockée est implémentée en PL/SQL (langage de programmation Oracle), donc le jeu d'enregistrements est un paramètre de sortie (SYS_REFCURSOR).Comment appeler une procédure stockée DB2 à partir de C#?

Je ne sais pas comment déclarer ce paramètre dans mon code C#.

DB2Parameter parameter = ((DB2Command)command).CreateParameter(); 

parameter.ParameterName = "cv_1"; 
parameter.Direction = ParameterDirection.Output; 
parameter.DbType = ... 

Répondre

1

Il n'y a pas d'énumération DB2Type pour les ensembles de résultats. Dans leur API, vous exécutez la commande avec la méthode DB2Command.ExecuteReader. Vous devrez peut-être modifier le PL/SQL à une fonction qui renvoie un sys_refcursor plutôt qu'une procédure qui a un paramètre sys_refcursor.

+0

J'ai essayé cela, mais je ne sais pas comment appeler une fonction de C#. J'ai cette erreur: DB2: ERREUR [42884] [IBM] [DB2/LINUXX8664] SQL0440N Aucune routine autorisée nommée "FUN_TEST" de type "PROCEDURE" ayant des arguments compatibles n'a été trouvée. SQLSTATE = 42884 – Jorge

+0

Une fonction renvoie une valeur et est déclarée avec le mot clé 'FUNCTION' au lieu de 'PROCEDURE'. Vérifiez les documents PL/SQL que vous avez à portée de main pour plus d'informations. –