Anmelden

View Full Version : SQL-Statements in RUNSQLSTM



Rolf7856
20-12-02, 11:54
Hallo zusammen,
habe vor 2 Tagen um Hilfe gebeten. Es wurde auch ein Hinweis gegeben, jedoch läuft es bei uns immer noch nicht.
Wir wollen SQL-Statements (SELECT, UPDATE, DELETE) anstatt manuell aufrufen, über CL-Programme durchführen. Wir haben V4R5M0.
Folgendes Bspl. in einer Sourcedatei:
update altddat/lfbpf
set lfbud = 20021220
where lfbln=10013613
Laufend kommt der Fehler:
Ursache . . . . . : Während der Verarbeitung der Quelle für den Befehl
RUNSQLSTM (SQL-Anweisung ausführen) wurden Fehler gefunden. Die Listendruckdatei ist *N in *N.
Kann leider nichts damit anfangen. Dieser Fehler kommt IMMER.
Auch meine SELECT-Befehle laufen nicht.
Hat jemand noch eine weitere Idee oder auch ein praktisches Beispiel wie die Quelldatei aussehen muss und/oder das CL.
Vielen herzlichen Dank.
Gruss Rolf.

SBaum
20-12-02, 13:56
Hallo,

Select funktioniert meines Wissens nicht.

Ein Beispiel was funktioniert:

im CL:
RUNSQLSTM SRCFILE(xxxbib/QSQLSRC) SRCMBR(xxxsrc) COMMIT(*NONE)

in der Source:
UPDATE xxxdatei SET feld = 20021201

Hoffentlich hilft das weiter.

Gruß
Stefanie

ERTH
20-12-02, 14:13
Hallo,

man kann auch den Query Manager für SQL-Befehle verwenden.
Mit STRQM die geünschten Befehle eingeben (Variablen sind möglich!).
In einem CL-Pgm kann der SQL-Befehl mit STRQMQRY aufgerufen werden.
Die Ausgabe von Daten in eine Datei ist möglich.

Bau
04-01-03, 12:03
Die obenstehenden Antworten kann ich bestätigen.

Es ist auch möglich, mehrere SQL-Statment
in einer Source abzuarbeiten. Wichtig ist allerdings, dass nach jedem SQL-Statment
ein ";" - Zeichen am Ende steht. z.B.

DELETE FROM xxbib/xxda1 WHERE xxfl1=1;
UPDATE xxbib/xxda2 SET xxfl2=1 WHERE xxfl2=0;
UPDATE xxbib/xxda3 SET xxfl3=5 WHERE XXfl4=0;
etc. etc.