OUTFIL Splitting
OUTFIL Splitting Example
Scenario - Create three output files by splitting 4 records each.
Input File - MATEPK.SORT.INPUT01 - FB file of 80 length
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 00001 student1 dept1 560 00003 student3 dept2 520 00004 student4 dept1 540 00005 student5 dept2 500 00002 student2 dept3 510 00006 student6 dept3 550 00008 student8 dept1 530 00007 student7 dept3 510 00009 student9 dept2 520 00010 student10 dept2 505
JCL -
----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
//MATEPKD JOB (123),'MTH',NOTIFY=&SYSUID
//*
//STEP01 EXEC PGM=SORT
//SORTIN DD DSN=MATEPK.SORT.INPUT01,DISP=SHR
//OUTPUT1 DD DSN=MATEPK.SORT.OUTPT01,
// SPACE=(CYL,(1,1),RLSE),DCB=*.SORTIN,
// DISP=(NEW,CATLG,DELETE)
//OUTPUT2 DD DSN=MATEPK.SORT.OUTPT02,
// SPACE=(CYL,(1,1),RLSE),DCB=*.SORTIN,
// DISP=(NEW,CATLG,DELETE)
//OUTPUT3 DD DSN=MATEPK.SORT.OUTPT03,
// SPACE=(CYL,(1,1),RLSE),DCB=*.SORTIN,
// DISP=(NEW,CATLG,DELETE)
//SYSOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=(1,5,ZD,A)
OUTFIL FNAMES=(OUTPUT1,OUTPUT2,OUTPUT3),SPLITBY=4
/*
Output File1 - MATEPK.SORT.OUTPT01 - FB file of 80 length
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 00001 student1 dept1 560 00002 student2 dept3 510 00003 student3 dept2 520 00004 student4 dept1 540
Output File2 - MATEPK.SORT.OUTPT02 - FB file of 80 length
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 00005 student5 dept2 500 00006 student6 dept3 550 00007 student7 dept3 510 00008 student8 dept1 530
Output File3 - MATEPK.SORT.OUTPT03 - FB file of 80 length
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 00009 student9 dept2 520 00010 student10 dept2 505
Explaining Example -
- SORT FIELDS=(1,5,ZD,A) - sort all outputs in ascending order based on the ZD value from 1 to 5 positions.
- OUTFIL FNAMES=(OUTPUT1,OUTPUT2,OUTPUT3),SPLITBY=4 - Splits the records by 4. First 4 records to output1 file, next 4 records to Output2 file and next 4 to output3 file.
- If any more records than 12, then the above process will occur again and again until it reaches to file end.