wake-up-neo.net

So rufen Sie eine gespeicherte Prozedur in IBM System i Access für Windows GUI-Tool auf

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).

13
Ken Burkhardt

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

23
Peter Schuetze

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.

  1. Starten Sie System i Access
  2. Wechseln Sie zu den iSeries-Symbolen und melden Sie sich an dem Symbol an, an dem sich Ihre gespeicherte Prozedur befindet
  3. Gehen Sie zu den Datenbanksymbolen und stellen Sie eine Verbindung zu den richtigen her (Sie haben eine lokale und wahrscheinlich eine oder mehrere Fernbedienungen).
  4. Nur dann wird am unteren Bildschirmrand die Option "SQL-Skript ausführen" angezeigt
  5. Starten Sie diese Option und Sie sehen einen SQL-Editor (Editor oben, Viewer/Meldungen unten).
  6. Denken Sie daran, dass Sie bereits mit der richtigen iSeries verbunden sind. Ihre JDBC-Anforderung erhält jedoch die * LIBL des Benutzerprofils Ihrer Verbindung. Daher müssen Sie das Schema (Iseries-Bibliothek) Ihrer gespeicherten Prozedur kennen
  7. Geben Sie "call YOURSCHEMA.YOURSTOREDPROCEDURE (?,?);" Ein. und verwenden Sie das Menü oder die Verknüpfung, um diese Anweisung auszuführen. Beachten Sie, dass - abhängig von Ihren JDBC-Einstellungen (siehe Menü) - die richtige Syntax "/" anstelle von "." Sein kann. Beachten Sie außerdem, dass Sie das erste Fragezeichen durch einen Wert ersetzen können.

Auf einer zusätzlichen Notiz,

  • In iAccess werden unter jedem Schema Symbole für die Tabellen, Ansichten usw. angezeigt. Es ist auch ein Symbol für gespeicherte Prozeduren verfügbar. Dort sehen Sie Ihr SP. Verwenden Sie die Optionen, um die Definition anzuzeigen. Diese Informationen enthalten detaillierte Informationen zu den Parametern
  • Wenn Sie dies auf Ihrer iSeries überprüfen möchten, verwenden Sie den Systemkatalog (dies kann auch vom SQL-Editor aus erfolgen) mit "select * from qsys2.sysprocedures where Prozedurname (Entschuldigung, der Name dieser Spalte ist sich derzeit nicht sicher) =" "YOURSTOREDPROCEDURE"; "

SEHR WICHTIG: Ich konnte den SP niemals mit dem SQL-Editor (STRSQL) auf der iSeries selbst testen. Nur der iAccess-SQL-Editor funktionierte ordnungsgemäß.

7
robertnl

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, ?);
0
Philip Rego