Ich möchte eine gespeicherte DB2-Prozedur testen, die auf einem AS400-System ausgeführt wird.
Ich habe IBM System i Access für Windows installiert und kann SQL-Befehle für die DB2-Datenbank ausführen.
Meine Frage ist: Wie lautet die Syntax, um eine gespeicherte Prozedur auszuführen, die einen Parameter übernimmt und ein Ergebnis als Ausgabeparameter zurückgibt und den Wert auf dem Bildschirm ausgeben?
Nur zur Klarstellung: Ich frage nicht, wie man das proc im Code anruft. Ich möchte die Prozedur ausführen und die Ergebnisse im GUI-Tool anzeigen (ähnlich dem SQL Enterprise Manager).
verwenden Sie das Schlüsselwort call
und übergeben Sie die Parameter.
call myStoredProc(parm1, parm2, ?);
weitere Details finden Sie hier http://www.ibm.com/developerworks/data/library/techarticle/dm-0503melnyk/ . Der interessante Teil ist Abbildung 5. SQL-Prozedur mit dem Befehlseditor aufrufen
Was Sie wollen, ist möglich. Ich habe es oft selbst gemacht. Leider bin ich momentan nicht im Büro, also muss es von Kopf bis Fuß sein.
Auf einer zusätzlichen Notiz,
SEHR WICHTIG: Ich konnte den SP niemals mit dem SQL-Editor (STRSQL) auf der iSeries selbst testen. Nur der iAccess-SQL-Editor funktionierte ordnungsgemäß.
Sie sollten in der Lage sein, Ihr SP folgendermaßen auszuführen:
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;
Oder Sie können EXECUTE verwenden, aber es kann nicht dynamisch vorbereitet werden (kann nicht in Java ausgeführt werden), und ich denke, es gibt einige andere Nachteile.
EXECUTE myStoredProc(parm1, parm2, ?);