zOs/JCL/CZ025RD
//A540769W JOB (CP00,KE50),'DB2 REO', 00010000
// MSGCLASS=T,TIME=1440, 00020000
// NOTIFY=&SYSUID,REGION=0M,SCHENV=DB2 00030001
//*MAIN CLASS=LOG 00040000
//*
//DISC1 EXEC PGM=DSNUTILB,TIME=1440,
// PARM=(DBOF,'A540769W'),
// REGION=0M
//SYSPRINT DD SYSOUT=*
//UTPRINT DD SYSOUT=*
//SYSTEMPL DD DISP=SHR,DSN=DBOF.DBAA.LISTDEF(TEMPL)
//DISCA DD DSN=A540769.TMPCZ.CZ025.DISCA,
// DISP=(NEW,CATLG,CATLG),DCB=(RECFM=VB,LRECL=5000),
// SPACE=(TRK,(10,100))
//PUNCH DD DSN=A540769.TMPCZ.CZ025.PUNCH,
// DISP=(NEW,CATLG,CATLG),DCB=(RECFM=FB,LRECL=80),
// SPACE=(TRK,(1,10))
//SYSIN DD *
LISTDEF LST INCLUDE TABLESPACE CZ08A1P.A025A PARTLEVEL
--- save everything before -------------------------------------------
COPY LIST LST COPYDDN TCOPYD
FULL YES PARALLEL
SHRLEVEL CHANGE
--- reorg tcz025A1 and discard old rows ------------------------------
REORG TABLESPACE CZ08A1P.A025A
LOG NO
SORTDATA
COPYDDN(TCOPYD)
SHRLEVEL CHANGE
MAPPINGTABLE S100447.MAPTAB02
MAXRO 300
DRAIN ALL
DELAY 1500
TIMEOUT TERM
UNLOAD CONTINUE
WORKDDN(TSYUTD,TSOUTD)
PUNCHDDN PUNCH
SORTKEYS
SORTDEVT DISK
STATISTICS INDEX ALL KEYCARD
REPORT NO UPDATE ALL
DISCARDDN DISCA
UNLDDN TSRECD
DISCARD FROM TABLE OA1P.TCZ025A1
WHEN (CZ025011 <= '01.01.2001')
//*** if ok then load ************************************************
// IF DISC1.RC = 0 OR DISC1.RC = 4 THEN
//LOAD1 EXEC PGM=DSNUTILB,TIME=1440,
// PARM=(DBOF,'A540769W'),
// REGION=0M
//SYSPRINT DD SYSOUT=*
//UTPRINT DD SYSOUT=*
//SYSTEMPL DD DISP=SHR,DSN=DBOF.DBAA.LISTDEF(TEMPL)
//DISCA DD DSN=*.DISC1.DISCA,DISP=OLD
//SYSIN DD *
LISTDEF LST INCLUDE TABLESPACE CZ08G1P.A025A PARTLEVEL
--- save everything before -------------------------------------------
COPY LIST LST COPYDDN TCOPYD
FULL YES PARALLEL
SHRLEVEL CHANGE
--- load discarded rows into tcz025g1 --------------------------------
LOAD DATA INDDN DISCA LOG YES RESUME YES
EBCDIC CCSID(00500,00000,00000)
WORKDDN(TSYUTD,TSOUTD)
INTO TABLE
"OA1P".
"TCZ025G1"
( "CZ025001"
POSITION(00007:00026) CHAR(020)
, "CZ025002"
POSITION(00027:00032) CHAR(006)
, "CZ025003"
POSITION(00033:00052) CHAR(020)
, "CZ025004"
POSITION(00053:00054) SMALLINT
, "CZ025005"
POSITION(00055:00074) CHAR(020)
, "CZ025006"
POSITION(00075:00094) CHAR(020)
, "CZ025007"
POSITION(00095:00120) TIMESTAMP EXTERNAL(026)
, "CZ025008"
POSITION(00121:00140) CHAR(020)
, "CZ025009"
POSITION(00141:00150) DATE EXTERNAL
, "CZ025010"
POSITION(00151:00176) TIMESTAMP EXTERNAL(026)
, "CZ025011"
POSITION(00177:00186) DATE EXTERNAL
, "CZ025012"
POSITION(00187:00188) CHAR(002)
, "CZ025013"
POSITION(00189:00191) CHAR(003)
, "CZ025014"
POSITION(00192:00251) CHAR(060)
, "CZ025015"
POSITION(00252:00256) CHAR(005)
, "CZ025016"
POSITION(00257:00316) CHAR(060)
, "CZ025017"
POSITION(00317:00317) CHAR(001)
, "CZ025018"
POSITION(00318:00321) INTEGER
, "CZ025019"
POSITION(00322:00325) INTEGER
, "CZ025020"
POSITION(00326:00329) INTEGER
, "CZ025021"
POSITION(00330:00333) INTEGER
, "CZ025022"
POSITION(00334:00335) CHAR(002)
, "CZ025023"
POSITION(00336:00337) CHAR(002)
, "CZ025024"
POSITION(00338:00397) CHAR(060)
, "CZ025025"
POSITION(00398:00398) CHAR(001)
, "CZ025026"
POSITION(00399:00424) TIMESTAMP EXTERNAL(026)
, "CZ025027"
POSITION(00425:00444) CHAR(020)
, "CZ025028"
POSITION(00445:00445) CHAR(001)
)
--- save everything afterwards ---------------------------------------
COPY LIST LST COPYDDN TCOPYD
FULL YES PARALLEL
SHRLEVEL CHANGE
// ENDIF
//*** if everything ok, delete discard and punch dsn *****************
// IF LOAD1.RUN AND (LOAD1.RC = 0 OR LOAD1.RC = 4) THEN
//DELE1 EXEC PGM=IEFBR14
//DISCA DD DSN=*.DISC1.DISCA,DISP=(OLD,DELETE)
//PUNCH DD DSN=*.DISC1.PUNCH,DISP=(OLD,DELETE)
// ENDIF