|
1 |
| - PGM PARM(&SRCFILE &SRCMBR &SQLIFSFILE &OUTFILE + |
2 |
| - &EMPTYERROR &NAMING &PROMPT &CRTIDCOL + |
3 |
| - &IDCOLNAME &DLTTMPSRC &SQLLOC) |
4 |
| - |
| 1 | + PGM PARM(&SRCFILE &SRCMBR &SQLIFSFILE &PARMS + |
| 2 | + &PARMVALS &OUTFILE &EMPTYERROR &NAMING + |
| 3 | + &PROMPT &CRTIDCOL &IDCOLNAME &DLTTMPSRC + |
| 4 | + &SQLLOC) |
| 5 | + |
| 6 | + DCL VAR(&RTNERROR) TYPE(*CHAR) LEN(1) |
| 7 | + DCL VAR(&PARMS) TYPE(*CHAR) LEN(3002) |
| 8 | + DCL VAR(&PARMVALS) TYPE(*CHAR) LEN(3002) |
5 | 9 | DCL VAR(&SQLQUAL) TYPE(*CHAR) LEN(1)
|
6 | 10 | DCL VAR(&NAMING) TYPE(*CHAR) LEN(4)
|
7 | 11 | DCL VAR(&IDCOLNAME) TYPE(*CHAR) LEN(30)
|
|
54 | 58 | being used to run query') TOPGMQ(*SAME) +
|
55 | 59 | MSGTYPE(*DIAG)
|
56 | 60 |
|
| 61 | + /* Delete temporary source file */ |
| 62 | + /* Make sure doesn't exist. */ |
| 63 | + DLTF FILE(QTEMP/TMPQRYSRC) |
| 64 | + MONMSG MSGID(CPF0000) |
| 65 | + |
| 66 | + /* Create temporary source file */ |
| 67 | + CRTSRCPF FILE(QTEMP/TMPQRYSRC) RCDLEN(240) |
| 68 | + ADDPFM FILE(QTEMP/TMPQRYSRC) MBR(TMPQRYSRC) + |
| 69 | + SRCTYPE(SQL) |
| 70 | + |
| 71 | + /* Make snapshot of source member to QTEMP for our job */ |
| 72 | + CPYSRCF FROMFILE(&SQLSRCLIB/&SQLSRCFILE) + |
| 73 | + TOFILE(QTEMP/TMPQRYSRC) FROMMBR(&SRCMBR) + |
| 74 | + TOMBR(TMPQRYSRC) MBROPT(*REPLACE) |
| 75 | + |
57 | 76 | ENDDO /* ENDDO *SRCMBR */
|
58 | 77 |
|
59 | 78 | /*----------------------------------------------------------------------------*/
|
|
110 | 129 | ENDDO /* ENDDO *IFSFILE */
|
111 | 130 |
|
112 | 131 | /*----------------------------------------------------------------------------*/
|
113 |
| -/* Read SQL from source member */ |
| 132 | +/* Read SQL from source member, scan and replace values */ |
| 133 | +/* and update the temp SQL member file in QTEMP */ |
114 | 134 | /*----------------------------------------------------------------------------*/
|
115 |
| - OVRDBF FILE(TMPSRCMBR) + |
116 |
| - TOFILE(&SQLSRCLIB/&SQLSRCFILE) + |
117 |
| - MBR(&SRCMBR) OVRSCOPE(*ACTGRPDFN) |
| 135 | + OVRDBF FILE(TMPQRYSRC) TOFILE(QTEMP/TMPQRYSRC) + |
| 136 | + MBR(*FIRST) OVRSCOPE(*ACTGRPDFN) |
| 137 | + CALL PGM(QSHQRYSR2R) PARM(&PARMS &PARMVALS + |
| 138 | + &RTNERROR) |
| 139 | + DLTOVR FILE(TMPQRYSRC) LVL(*ACTGRPDFN) |
| 140 | + |
| 141 | + /* If rtnerror <> '0', bail out now */ |
| 142 | + IF COND(&RTNERROR *EQ '1') THEN(DO) |
| 143 | + SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('Same + |
| 144 | + number of parms and parm values are + |
| 145 | + required to be passed') MSGTYPE(*ESCAPE) |
| 146 | + ENDDO |
| 147 | + IF COND(&RTNERROR *EQ '2') THEN(DO) |
| 148 | + SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('At + |
| 149 | + least one parameter required error + |
| 150 | + occurred while processing SQL source + |
| 151 | + member parameters') MSGTYPE(*ESCAPE) |
| 152 | + ENDDO |
| 153 | + IF COND(&RTNERROR *EQ '3') THEN(DO) |
| 154 | + SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('Unknown + |
| 155 | + error occurred while handling parameters. + |
| 156 | + Check the joblog') MSGTYPE(*ESCAPE) |
| 157 | + ENDDO |
| 158 | + |
| 159 | +/*----------------------------------------------------------------------------*/ |
| 160 | +/* Read SQL from source member in QTEMP and compose final query */ |
| 161 | +/*----------------------------------------------------------------------------*/ |
| 162 | + OVRDBF FILE(TMPSRCMBR) TOFILE(QTEMP/TMPQRYSRC) + |
| 163 | + MBR(*FIRST) OVRSCOPE(*ACTGRPDFN) |
118 | 164 | CALL PGM(QSHQRYSRCR) PARM(&SQLQUERY)
|
119 | 165 | DLTOVR FILE(TMPSRCMBR) LVL(*ACTGRPDFN)
|
120 | 166 |
|
|
125 | 171 | empty or has blank lines. Query +
|
126 | 172 | cancelled') MSGTYPE(*ESCAPE)
|
127 | 173 | ENDDO
|
| 174 | + |
128 | 175 | /*----------------------------------------------------------------------------*/
|
129 | 176 | /* Parse outfile parm */
|
130 | 177 | /*----------------------------------------------------------------------------*/
|
|
0 commit comments