MERGE FIELDS Example


Scenario1 - Merge two files and write into single output file.

Input1 - MATEPK.SORTDATA.INPUT01

----+----1----+----2----+---3----+---4---+----5---+----6----+---7---+----8
00001    PAWAN     KUMAR     Y         0000010000
00002    KAMAL     K         S         0000040000
00003    SRIDHAR   R         G         0000030000
00004    SRINIVASA RAO       C         0000020000
00005    VENKAT    R         Y         0000060000
00006    RAJESH    KUMAR     Y         0000050000

Input2 - MATEPK.SORTDATA.INPUT02

----+----1----+----2----+---3---+----4---+----5---+----6---+----7---+----8
00007    GURU      R         N         0000070000
00008    KUMAR     K         S         0000060000
00009    RAO       A         C         0000020000
00010    VENU      K         P         0000030000

JCL -

---+----1----+----2---+---3---+----4---+----5---+---6----+---7--
//MATEPKD  JOB (123),'MTH',NOTIFY=&SYSUID
//*
//STEP10  EXEC PGM=SORT
//SYSOUT    DD SYSOUT=*
//SORTIN01  DD DSN=MATEPK.SORTDATA.INPUT01,DISP=SHR
//SORTIN02  DD DSN=MATEPK.SORTDATA.INPUT02,DISP=SHR
//SORTOUT   DD DSN=MATEPK.MERGE.OUTPUT,
//            DISP=(NEW,CATLG,DELETE),UNIT=SYSDA,
//            SPACE=(CYL,(1,4),RLSE),
//            DCB=(RECFM=FB,LRECL=80,BLKSIZE=0)
//SYSIN     DD *
    MERGE FIELDS=(1,5,A,40,10,A),FORMAT=CH
/*

Output -

---+---1---+---2----+---3---+----4---+---5---+---6----+---7---+----8
00001    PAWAN     KUMAR     Y         0000010000
00002    KAMAL     K         S         0000040000
00003    SRIDHAR   R         G         0000030000
00004    SRINIVASA RAO       C         0000020000
00005    VENKAT    R         Y         0000060000
00006    RAJESH    KUMAR     Y         0000050000
00007    GURU      R         N         0000070000
00008    KUMAR     K         S         0000060000
00009    RAO       A         C         0000020000
00010    VENU      K         P         0000030000

Explaining Example -

  1. MERGE FIELDS=(1,5,A,40,10,A),FORMAT=CH is equal to MERGE FIELDS=(1,5,CH,A,40,10,CH,A)
  2. MERGE FIELDS=(1,5,CH,A,...) - Performs merge on the data in 1 to 5 positions to produce the merge result in ascending order.
  3. MERGE FIELDS=(...,40,10,CH,A) - Performs merge on the result of the above step. Merge performed on the data in 40 to 50 positions to produce the result in ascending order.