Bonjour,
J’ai besoin de lancer un batch d’alimentation de tables/fichier dans une bibliothèque dans le cadre d’une migration technologique. Comment effacer tous les fichiers/tables avant ce lancement (en cas de test par exemple)?
Cordialement,
Olivier.
Un solution trouvée sur le web
select 'DELETE FROM ' CONCAT TABLE_SCHEMA CONCAT '.' CONCAT TABLE_NAME CONCAT ';' from sysibm.TABLES WHERE TABLE_SCHEMA = 'MABIB' AND TABLE_TYPE = 'BASE TABLE' AND TABLE_NAME NOT LIKE 'Q%'
Copier/coller du résultat dans un client SQL et execution.
Autre solution trouvée sur le web :
PGM PARM(&LIB)
DCL VAR(&LIB) TYPE(*CHAR) LEN(10)
DCLF FILE(QADSPOBJ)
DSPOBJD OBJ(&LIB/*ALL) OBJTYPE(*FILE) +
OUTPUT(*OUTFILE) OUTFILE(QTEMP/WOBJD)
OVRDBF FILE(QADSPOBJ) TOFILE(QTEMP/WOBJD)
NEXT:
RCVF
MONMSG MSGID(CPF0864) EXEC(GOTO CMDLBL(EOF))
/* On ne traite que les objets *FILE/PF, SAUF ceux */
/* commençant pat 'Q' pour ne pas clearer les sources */
IF COND(&ODOBTP *EQ '*FILE' *AND &ODOBAT *EQ +
'PF' *AND %SST(&ODOBNM 1 1) *NE 'Q') THEN(DO)
CLRPFM FILE(&LIB/&ODOBNM)
GOTO CMDLBL(NEXT)
EOF:
ENDPGM