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)
  )