Je souhaite tester une procédure stockée DB2 s'exécutant sur un système AS400.
IBM System i Access pour Windows est installé et je peux exécuter des commandes SQL sur la base de données DB2.
Ma question est la suivante: quelle est la syntaxe pour exécuter une procédure stockée qui prend un paramètre et renvoie un résultat en tant que paramètre de sortie et affiche la valeur à l'écran?
Juste pour clarifier: je ne demande pas comment appeler le proc dans le code. Je veux exécuter le proc et voir les résultats dans l'outil graphique (qui est similaire à SQL Enterprise Manager).
utilisez le mot clé call
et transmettez les paramètres.
call myStoredProc(parm1, parm2, ?);
pour plus de détails voir ici http://www.ibm.com/developerworks/data/library/techarticle/dm-0503melnyk/ La partie intéressante est Figure 5. Utilisation de l'éditeur de commandes pour appeler une procédure SQL
Ce que tu veux est possible. Je l'ai fait moi-même plusieurs fois. Malheureusement, je ne suis pas au bureau pour le moment, alors ça doit venir de ma tête.
Sur une note supplémentaire,
TRÈS IMPORTANT: je n’ai jamais pu tester le SP avec l’éditeur SQL (STRSQL) sur l’iSeries même. Seul l'éditeur SQL iAccess a fonctionné correctement.
Vous devriez pouvoir utiliser votre SP comme ceci:
DECLARE
usr_in YOUR_TABLE.YOUR_COLM%TYPE; --Gets the correct type by looking at column type
app_in YOUR_TABLE.YOUR_OTHER_COLM%TYPE;
BEGIN
usr_in:='some value';
app_in:='another_value';
YOUR_SP_NAME(usr_in, app_in);
END;
Ou vous pouvez utiliser EXECUTE, mais il ne peut pas être préparé de manière dynamique (ne pas s'exécuter en Java) et je pense qu'il y a d'autres inconvénients.
EXECUTE myStoredProc(parm1, parm2, ?);