2008-12-17 10 views
2

J'ai un bloc de code qui est répété dans une procédure stockée DB2. Je voudrais séparer cela en une nouvelle procédure que je peux appeler avec des paramètres et lui faire retourner une valeur.Récupérer la valeur de retour de la procédure stockée DB2

Comment créer une procédure pour renvoyer une valeur et comment puis-je appeler cette procédure depuis ma procédure d'origine?

Répondre

1

Que diriez-vous d'un paramètre de sortie dans le processus que vous appelez depuis votre proc initial? L'appel d'un proc se fait via la commande CALL. C'est dans le manuel;)

3

Oui, un paramètre de sortie suffit. Je n'ai pas trouvé la bonne syntaxe d'appel dans le manuel ou google bien.

Vous créez la procédure comme ceci:

CREATE PROCEDURE myschema.add(IN a INT, IN b INT, OUT c INT) 
BEGIN 
    SET c = a + b; 
END 

Et puis l'appeler comme ça (ce que je ne pouvais pas comprendre):

DECLARE result INT DEFAULT 0; 

CALL myschema.add(10, 20, result); 

-- result == 30 

Et puis la sortie se termine en la variable result fournie. Vous pouvez également avoir plusieurs paramètres OUT ainsi que les paramètres INOUT.

Bien sûr, il semble évident maintenant. :)

Questions connexes