Skolusu
Senior Member
Joined: 07 Dec 2007 Posts: 2205 Location: San Jose
|
|
|
|
Sambhaji wrote: |
Hi kolusu,
thanks for reply...
refered link is copying only one key value data in one file till tenth unique value leftover records are copied to other file...
In my case there are more than 500 unique keys..
and i want to split all data across 10 files ..
only constraint is "all records with one key value should come in only one file" |
Sambhaji,
The following JCL will give you the desired results. It will split every 50 unique key records into a single file and so on . Any unique key after 500 is copied to REST dd
If your input is already sorted on the key then change sort fields to COPY
Code: |
//STEP0100 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN=Your 80 Fb input file,
// DISP=SHR
//OUT01 DD SYSOUT=*
//OUT02 DD SYSOUT=*
//OUT03 DD SYSOUT=*
//OUT04 DD SYSOUT=*
//OUT05 DD SYSOUT=*
//OUT06 DD SYSOUT=*
//OUT07 DD SYSOUT=*
//OUT08 DD SYSOUT=*
//OUT09 DD SYSOUT=*
//OUT10 DD SYSOUT=*
//REST DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=(1,3,CH,A)
OUTREC IFTHEN=(WHEN=INIT,OVERLAY=(81:SEQNUM,8,ZD,RESTART=(1,3))),
IFTHEN=(WHEN=GROUP,BEGIN=(81,8,ZD,EQ,1),PUSH=(89:ID=8)),
IFTHEN=(WHEN=(89,8,ZD,GT,000,AND,89,8,ZD,LE,050),OVERLAY=(97:C'01')),
IFTHEN=(WHEN=(89,8,ZD,GT,051,AND,89,8,ZD,LE,100),OVERLAY=(97:C'02')),
IFTHEN=(WHEN=(89,8,ZD,GT,101,AND,89,8,ZD,LE,150),OVERLAY=(97:C'03')),
IFTHEN=(WHEN=(89,8,ZD,GT,151,AND,89,8,ZD,LE,200),OVERLAY=(97:C'04')),
IFTHEN=(WHEN=(89,8,ZD,GT,201,AND,89,8,ZD,LE,250),OVERLAY=(97:C'05')),
IFTHEN=(WHEN=(89,8,ZD,GT,251,AND,89,8,ZD,LE,300),OVERLAY=(97:C'06')),
IFTHEN=(WHEN=(89,8,ZD,GT,301,AND,89,8,ZD,LE,350),OVERLAY=(97:C'07')),
IFTHEN=(WHEN=(89,8,ZD,GT,351,AND,89,8,ZD,LE,400),OVERLAY=(97:C'08')),
IFTHEN=(WHEN=(89,8,ZD,GT,401,AND,89,8,ZD,LE,450),OVERLAY=(97:C'09')),
IFTHEN=(WHEN=(89,8,ZD,GT,451,AND,89,8,ZD,LE,500),OVERLAY=(97:C'10'))
OUTFIL FNAMES=OUT01,BUILD=(1,80),INCLUDE=(97,2,ZD,EQ,01)
OUTFIL FNAMES=OUT02,BUILD=(1,80),INCLUDE=(97,2,ZD,EQ,02)
OUTFIL FNAMES=OUT03,BUILD=(1,80),INCLUDE=(97,2,ZD,EQ,03)
OUTFIL FNAMES=OUT04,BUILD=(1,80),INCLUDE=(97,2,ZD,EQ,04)
OUTFIL FNAMES=OUT05,BUILD=(1,80),INCLUDE=(97,2,ZD,EQ,05)
OUTFIL FNAMES=OUT06,BUILD=(1,80),INCLUDE=(97,2,ZD,EQ,06)
OUTFIL FNAMES=OUT07,BUILD=(1,80),INCLUDE=(97,2,ZD,EQ,07)
OUTFIL FNAMES=OUT08,BUILD=(1,80),INCLUDE=(97,2,ZD,EQ,08)
OUTFIL FNAMES=OUT09,BUILD=(1,80),INCLUDE=(97,2,ZD,EQ,09)
OUTFIL FNAMES=OUT10,BUILD=(1,80),INCLUDE=(97,2,ZD,EQ,10)
OUTFIL FNAMES=REST,SAVE
/* |
|
|