Andreas Herzfeldt
13-04-12, 14:43
Hallo zusammen , ich stehe ein wenig auf dem Schlauch und komme nicht weiter.
Ich habe dieses QMQRY erstellt und daraus den Typ SQL erstellt :
SELECT_FPF
0001.00 INSERT INTO
0002.00 QTEMP/SYSTFTPF
0003.00 SELECT
0004.00 *
0005.00 FROM
0006.00 &LIBR/&TABLE
0007.00 WHERE FSERVE = &SERVERO
0008.00 AND FDOMAI = &DOMAINO
Insgesamt möchte ich das mit 4 Varaiblen ausführen.
Hier nun das CL :
PGM PARM(&OPT &SERVER &DOMAIN)
DCL VAR(&OPT) TYPE(*CHAR) LEN(1)
DCL VAR(&LIB) TYPE(*CHAR) LEN(10) +
VALUE('SYSAUS_V11')
DCL VAR(&FILE) TYPE(*CHAR) LEN(10) +
VALUE('SYSTFPF')
DCL VAR(&SERVER) TYPE(*CHAR) LEN(20)
DCL VAR(&DOMAIN) TYPE(*CHAR) LEN(20)
DCL VAR(&SERVERO) TYPE(*CHAR) LEN(23)
DCL VAR(&DOMAINO) TYPE(*CHAR) LEN(23)
CHGVAR VAR(&SERVERO) VALUE('''' *CAT &SERVER *TCAT '''')
CHGVAR VAR(&DOMAINO) VALUE('''' *CAT &DOMAIN *TCAT '''')
STRQMQRY QMQRY(SYSAUS_V11/SELECT_FPF) SETVAR((LIBR ' *CAT &LIB *CAT ') (TABLE ' *CAT &FILE *CAT ') (FSERVE &SERVERO) (FDOMAI &DOMAINO))
Obwoh ich die Variablen in den entsprechenden Hochkommata einbette, erfolgt die Abfrage nach Werten für die Variablen.
Was ist falsch, hier noch das Joblog :
CALL PGM(SYSTSCL_QM) PARM('1' 'SYSTEM' 'DOMAIN')
Einen Wert für Variable SERVERO eingeben und die Eingabetaste drücken.
'SYSTEM'
Einen Wert für Variable DOMAINO eingeben und die Eingabetaste drücken.
'DOMAIN'
Token * ungültig. Gültige Token: ( NEW FINAL TABLE UNNEST LATERAL
<IDENTIFIER>.
Befehl RUN für Objekt QUERY mit SQLCODE -104 fehlgeschlagen.
Befehl RUN QUERY aufgrund eines Fehlers beendet.
Befehl STRQMQRY fehlgeschlagen.
Im Dump sehen alle Feldinhalte richtig aus :
&DOMAIN *CHAR 20 'DOMAIN '
&DOMAINO *CHAR 23 ''DOMAIN' '
&OPT *CHAR 1 '1'
&SERVER *CHAR 20 'SYSTEM '
&SERVERO *CHAR 23 ''SYSTEM' '
Wir haben V7R1 am laufen.
MFG
Andreas
Ich habe dieses QMQRY erstellt und daraus den Typ SQL erstellt :
SELECT_FPF
0001.00 INSERT INTO
0002.00 QTEMP/SYSTFTPF
0003.00 SELECT
0004.00 *
0005.00 FROM
0006.00 &LIBR/&TABLE
0007.00 WHERE FSERVE = &SERVERO
0008.00 AND FDOMAI = &DOMAINO
Insgesamt möchte ich das mit 4 Varaiblen ausführen.
Hier nun das CL :
PGM PARM(&OPT &SERVER &DOMAIN)
DCL VAR(&OPT) TYPE(*CHAR) LEN(1)
DCL VAR(&LIB) TYPE(*CHAR) LEN(10) +
VALUE('SYSAUS_V11')
DCL VAR(&FILE) TYPE(*CHAR) LEN(10) +
VALUE('SYSTFPF')
DCL VAR(&SERVER) TYPE(*CHAR) LEN(20)
DCL VAR(&DOMAIN) TYPE(*CHAR) LEN(20)
DCL VAR(&SERVERO) TYPE(*CHAR) LEN(23)
DCL VAR(&DOMAINO) TYPE(*CHAR) LEN(23)
CHGVAR VAR(&SERVERO) VALUE('''' *CAT &SERVER *TCAT '''')
CHGVAR VAR(&DOMAINO) VALUE('''' *CAT &DOMAIN *TCAT '''')
STRQMQRY QMQRY(SYSAUS_V11/SELECT_FPF) SETVAR((LIBR ' *CAT &LIB *CAT ') (TABLE ' *CAT &FILE *CAT ') (FSERVE &SERVERO) (FDOMAI &DOMAINO))
Obwoh ich die Variablen in den entsprechenden Hochkommata einbette, erfolgt die Abfrage nach Werten für die Variablen.
Was ist falsch, hier noch das Joblog :
CALL PGM(SYSTSCL_QM) PARM('1' 'SYSTEM' 'DOMAIN')
Einen Wert für Variable SERVERO eingeben und die Eingabetaste drücken.
'SYSTEM'
Einen Wert für Variable DOMAINO eingeben und die Eingabetaste drücken.
'DOMAIN'
Token * ungültig. Gültige Token: ( NEW FINAL TABLE UNNEST LATERAL
<IDENTIFIER>.
Befehl RUN für Objekt QUERY mit SQLCODE -104 fehlgeschlagen.
Befehl RUN QUERY aufgrund eines Fehlers beendet.
Befehl STRQMQRY fehlgeschlagen.
Im Dump sehen alle Feldinhalte richtig aus :
&DOMAIN *CHAR 20 'DOMAIN '
&DOMAINO *CHAR 23 ''DOMAIN' '
&OPT *CHAR 1 '1'
&SERVER *CHAR 20 'SYSTEM '
&SERVERO *CHAR 23 ''SYSTEM' '
Wir haben V7R1 am laufen.
MFG
Andreas