zOs/JCL/ELSELOA
//A540769B JOB (CP00,KE50) 00010001
//*MAIN CLASS=LOG
//* dieser Job liest aus der Tabelle oa1a.tel002a1
//* welche Partition der Tabelle oa1a.tel001a1 geladen werden soll
//*
//*
//* part-file löschen
//DEL EXEC PGM=IEFBR14 00020001
//PART DD DISP=(MOD,DELETE,DELETE),DSN=A540769.ELSELOA.PART
//*
//*
//* Partition selektieren aus Tabelle oa1a.tel002a1
//* und in eine 80-char Zeile schreiben
//SELPART EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99 00020001
//SYSTSIN DD *
DSN SYSTEM(DBAF)
RUN PROGRAM(DSNTIAUL) PARMS('SQL')
//SYSIN DD *
SELECT CHAR(CASE when EL002001 = 'BE' then '1'
when EL002001 = 'LU' then '2'
when EL002001 = 'ZH' then '3'
else 'partition unbekannt el002001=' || EL002001
end , 80 )
from oa1a.tel002a1
where el002003 = 'I'
;
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTERM DD DUMMY
//SYSPUNCH DD DUMMY
//SYSREC00 DD DISP=(NEW,CATLG),DSN=*.DEL.PART,
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=800),
// SPACE=(TRK,(1,1))
//*
//*
//* Zuerst eine Kopie erstellen (falls wir backup bräuchten...)
//* und dann die Partition mit den Daten aus DD RECIN ersetzen
//*
//* Achtung: el001001 muss der richtige PartitionsKey
//* für die gefundene Partition sein|||
//LOAD EXEC PGM=DSNUTILB,TIME=1440,
// PARM=(DBAF,'A540769B.LOAD'),
// REGION=0M
//DSSPRINT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//UTPRINT DD SYSOUT=*
//SYSTEMPL DD DISP=SHR,DSN=DBAF.DBAA.LISTDEF(TEMPL)
//RECIN DD DISP=SHR,DSN=DBAF.EL02A1A.A001A.P00002.D100312.REC
//SYSIN DD *
COPY TABLESPACE EL02A1A.A001A DSNUM ALL
COPYDDN(TCOPYD) SHRLEVEL REFERENCE
LOAD DATA
LOG NO
SORTDEVT DISK
SORTKEYS
WORKDDN(TSYUTD,TSOUTD)
EBCDIC CCSID(00500,00000,00000)
INTO TABLE OA1A.TEL001A1 PART
// DD DISP=SHR,DSN=*.DEL.PART
// DD *
RESUME NO REPLACE COPYDDN(TCOPYD)
-- STATISTICS INDEX(ALL) REPORT NO UPDATE ALL
INDDN(RECIN)
( "EL001001"
POSITION( 00003:00004) CHAR(00002)
, "EL001002"
POSITION( 00005:00012) CHAR(00008)
, "EL001003"
POSITION( 00013:00016) CHAR(00004)
, "EL001004"
POSITION( 00017:00020) CHAR(00004)
, "EL001005"
POSITION( 00021:00040) CHAR(00020)
, "EL001006"
POSITION( 00041:00044) CHAR(00004)
, "EL001007"
POSITION( 00045:00056) CHAR(00012)
, "EL001008"
POSITION( 00057:00068) CHAR(00012)
, "EL001009"
POSITION( 00069:00088) CHAR(00020)
, "EL001010"
POSITION( 00089:00098) DATE EXTERNAL
, "EL001011"
POSITION( 00099:00122) CHAR(00024)
, "EL001012"
POSITION( 00123:00148) TIMESTAMP EXTERNAL
, "EL001013"
POSITION( 00149:00174) TIMESTAMP EXTERNAL
, "EL001014"
POSITION( 00175:00184) CHAR(00010)
)