Sort Utility
This document contains the few control statements, we have discussed during the
session with examples.
The given files are the input files used in all the below given examples
Sample Input File (SAMPLE.INPUT):
MOHANK 23423423434534344 KIRAN
MOHANK 13342345345345345 RAJEEV
ARAMES 34535345325354324 SURESH
SURESH 98347385385933987 PULI
RAMESH 67575789769876785 MADHU
KRISHN 50830948530859340 OIIED
KRISHN 30495849572938495 MADHU
SURESH 98347385385933987 PULI
Sample Input File (SAMPLE.INPUT1):
SUBBUK 98347385385933987 PULI
SORT FIELDS:
//A025310C JOB (MPRD,ARE),'SAMPLE',
// CLASS=C,MSGCLASS=9,NOTIFY=&SYSUID,
//*
//STEP001 EXEC PGM=SORT,REGION=0M
//SORTIN DD DSN=SAMPLE.INPUT,
// DISP=SHR
//SORTOUT DD DSN= SAMPLE.OUTPUT1,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(01,01),RLSE),
// UNIT=SYSDA
//SYSIN DD *
SORT FIELDS=COPY
/*
//SYSOUT DD SYSOUT=*
//*
Output file (SAMPLE.OUTPUT1) of the previous step:
MOHANK 23423423434534344 KIRAN
MOHANK 13342345345345345 RAJEEV
ARAMES 34535345325354324 SURESH
SURESH 98347385385933987 PULI
RAMESH 67575789769876785 MADHU
KRISHN 50830948530859340 OIIED
KRISHN 30495849572938495 MADHU
SURESH 98347385385933987 PULI
//STEP002 EXEC PGM=SORT,REGION=0M
//SORTIN DD DSN=SAMPLE.INPUT,
// DISP=SHR
//SORTOUT DD DSN= SAMPLE.OUTPUT2,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(01,01),RLSE),
// UNIT=SYSDA
//SYSIN DD *
SORT FIELDS=(1,3,CH,A,9,3,CH,A)
/*
//SYSOUT DD SYSOUT=*
//*
Output file (SAMPLE.OUTPUT2) of the previous step:
ARAMES 34535345325354324 SURESH
KRISHN 30495849572938495 MADHU
KRISHN 50830948530859340 OIIED
MOHANK 13342345345345345 RAJEEV
MOHANK 23423423434534344 KIRAN
RAMESH 67575789769876785 MADHU
SURESH 98347385385933987 PULI
SURESH 98347385385933987 PULI
//STEP003 EXEC PGM=SORT,REGION=0M
//SORTIN DD DSN=SAMPLE.INPUT,DISP=SHR
//SORTOUT DD DSN= SAMPLE.OUTPUT3,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(01,01),RLSE),
// UNIT=SYSDA
//SYSIN DD *
SORT FIELDS=COPY, STOPAFT=2
/*
//SYSOUT DD SYSOUT=*
//*
Output file (SAMPLE.OUTPUT3) of the previous step:
MOHANK 23423423434534344 KIRAN
MOHANK 13342345345345345 RAJEEV
//STEP004 EXEC PGM=SORT,REGION=0M
//SORTIN DD DSN=SAMPLE.INPUT,DISP=SHR
//SORTOUT DD DSN= SAMPLE.OUTPUT4,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(01,01),RLSE),
// UNIT=SYSDA
//SYSIN DD *
SORT FIELDS=COPY, SKIPREC=2
/*
//SYSOUT DD SYSOUT=*
//*
Output file (SAMPLE.OUTPUT4) of the previous step:
ARAMES 34535345325354324 SURESH
SURESH 98347385385933987 PULI
RAMESH 67575789769876785 MADHU
KRISHN 50830948530859340 OIIED
KRISHN 30495849572938495 MADHU
SURESH 98347385385933987 PULI
INCLUDE COND
//STEP005 EXEC PGM=SORT,REGION=0M
//SORTIN DD DSN=SAMPLE.INPUT,DISP=SHR
//SORTOUT DD DSN= SAMPLE.OUTPUT5,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(01,01),RLSE),
// UNIT=SYSDA
//SYSIN DD *
SORT FIELDS=COPY
INCLUDE=(1,6,CH,EQ,C'MOHANK')
/*
//SYSOUT DD SYSOUT=*
//*
Output file (SAMPLE.OUTPUT5) of the previous step:
MOHANK 23423423434534344 KIRAN
MOHANK 13342345345345345 RAJEEV
OMIT COND
//STEP006 EXEC PGM=SORT,REGION=0M
//SORTIN DD DSN=SAMPLE.INPUT,DISP=SHR
//SORTOUT DD DSN= SAMPLE.OUTPUT6,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(01,01),RLSE),
// UNIT=SYSDA
//SYSIN DD *
SORT FIELDS=COPY
OMIT=(1,6,CH,EQ,C'MOHANK')
/*
//SYSOUT DD SYSOUT=*
//*
Output file (SAMPLE.OUTPUT5) of the previous step:
ARAMES 34535345325354324 SURESH
SURESH 98347385385933987 PULI
RAMESH 67575789769876785 MADHU
KRISHN 50830948530859340 OIIED
KRISHN 30495849572938495 MADHU
SURESH 98347385385933987 PULI
MERGE FIELDS:
//STEP007 EXEC PGM=SORT,REGION=0M
//SORTIN DD DSN=SAMPLE.INPUT,DISP=SHR
// DD DSN=SAMPLE.INPUT1,DISP=SHR
//SORTOUT DD DSN= SAMPLE.OUTPUT7,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(01,01),RLSE),
// UNIT=SYSDA
//SYSIN DD *
MERGE FIELDS=COPY
/*
//SYSOUT DD SYSOUT=*
//*
Output file (SAMPLE.OUTPUT7) of the previous step:
MOHANK 23423423434534344 KIRAN
MOHANK 13342345345345345 RAJEEV
ARAMES 34535345325354324 SURESH
SURESH 98347385385933987 PULI
RAMESH 67575789769876785 MADHU
KRISHN 50830948530859340 OIIED
KRISHN 30495849572938495 MADHU
SURESH 98347385385933987 PULI
SUBBUK 98347385385933987 PULI
INREC FIELDS:
//STEP008 EXEC PGM=SORT,REGION=0M
//SORTIN DD DSN=SAMPLE.INPUT,DISP=SHR
//SORTOUT DD DSN= SAMPLE.OUTPUT8,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(01,01),RLSE),
// UNIT=SYSDA
//SYSIN DD *
SORT FIELDS=COPY
INREC FIELDS=(7:2,5,20:10,3)
/*
//SYSOUT DD SYSOUT=*
//*
Output file (SAMPLE.OUTPUT8) of the previous step:
OHANK 342
OHANK 334
RAMES 453
URESH 834
AMESH 757
RISHN 083
RISHN 049
URESH 834
In above example, we can use OUTREC instead of INREC,
INREC adds, deletes, or reformats fields before the records are sorted or
merged. so that performance will be improved
OUTREC adds, deletes, or reformats fields after the records are sorted or
merged.
SUM FIELDS:
//STEP009 EXEC PGM=SORT,REGION=0M
//SORTIN DD DSN=SAMPLE.INPUT,DISP=SHR
//SORTOUT DD DSN= SAMPLE.OUTPUT9,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(01,01),RLSE),
// UNIT=SYSDA
//SORTXSUM DD DSN= SAMPLE.OUTPUT9,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(01,01),RLSE),
// UNIT=SYSDA
//SYSIN DD *
SORT FIELDS=(1,3,CH,A)
SUM FIELDS=NONE,XSUM
/*
//SYSOUT DD SYSOUT=*
//*
Output file (SAMPLE.OUTPUT9) of the previous step:
ARAMES 34535345325354324 SURESH
KRISHN 50830948530859340 OIIED
MOHANK 23423423434534344 KIRAN
RAMESH 67575789769876785 MADHU
SURESH 98347385385933987 PULI
Output file (SAMPLE.OUTPUT10) of the previous
step:
KRISHN 30495849572938495 MADHU
MOHANK 13342345345345345 RAJEEV
SURESH 98347385385933987 PULI
Here,
SUM FIELDS=NONE means it will eliminate duplicates
XSUM options will copy all records eliminated in sort process will copy to
another data set defined in SORTXSUM step
OUTFIL Control Statement:
//STEP010 EXEC PGM=SORT,REGION=0M
//SORTIN DD DSN=SAMPLE.INPUT,DISP=SHR
//SORTOF01 DD DSN= SAMPLE.OUTPUT11,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(01,01),RLSE),
// UNIT=SYSDA
//SORTOF02 DD DSN= SAMPLE.OUTPUT12,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(01,01),RLSE),
// UNIT=SYSDA
//SYSIN DD *
SORT FIELDS=COPY
OUTFIL FILES=01,INCLUDE=(1,6,CH,EQ,C'MOHANK')
OUTFIL FILES=02,INCLUDE=(1,6,CH,EQ,C'SURESH')
/*
//SYSOUT DD SYSOUT=*
//*
Output file (SAMPLE.OUTPUT11) of the previous
step:
MOHANK 23423423434534344 KIRAN
MOHANK 13342345345345345 RAJEEV
Output file (SAMPLE.OUTPUT12) of the previous
step:
SURESH 98347385385933987 PULI
SURESH 98347385385933987 PULI
Other Sort Examples
sort examples.zip