Merge Files



IBM's flagship sort product DFSORT for sorting, merging, copying, data manipulation and reporting. Includes ICETOOL and ICEGENER

Merge Files

Postby Gron » Mon Aug 02, 2010 9:44 pm

I am trying to use DFSORT to merge several files into one but retain only the first header record.
All the input files have the same format.

I have 6 fixed length flat files, each with the same format:
Header-rec
Detail-rec
Detail-rec
.
.
etc.

I want to merge the files but only retain one header rec.
The header record can be uniquely identified. #
I cannot use SUM FIELDS=NONE (which eliminates duplicates) as the header record only contains alphanumeric characters.

How do I achieve this?
Gron
 
Posts: 1
Joined: Mon Aug 02, 2010 9:39 pm
Has thanked: 0 time
Been thanked: 0 time

Re: Merge Files

Postby MrSpock » Mon Aug 02, 2010 9:50 pm

A MERGE operation implies that you have n files of the same format, in sorted order on the same key, that you want to combine together into a single output file. Your description doesn't really seem to indicate that a MERGE is appropriate. Maybe you just want to concatenate 6 files into one?
User avatar
MrSpock
Global moderator
 
Posts: 809
Joined: Wed Jun 06, 2007 9:37 pm
Location: Raleigh NC USA
Has thanked: 0 time
Been thanked: 4 times

Re: Merge Files

Postby skolusu » Mon Aug 02, 2010 9:53 pm

Gron,
The following DFSORT JCL will give you the desired results. I assumed that the header record is identified by '#' in position 1 and your input is FB recfm and LRECL of 80

//STEP0100 EXEC PGM=SORT                                   
//SYSOUT   DD SYSOUT=*                                     
//SORTIN   DD *                                             
#                                                           
D1 - 1                                                     
D1 - 2                                                     
D1 - 3                                                     
//         DD *                                             
#                                                           
D2 - 1                                                     
D2 - 2                                                     
//         DD *                                             
#                                                           
D3 - 1                                                     
D3 - 2                                                     
D3 - 3                                                     
//         DD *                                             
#                                                           
D4 - 1                                                     
D4 - 2                                                     
D4 - 3                                                     
//         DD *                                             
#                                                           
D5 - 1                                                     
D5 - 2                                                     
D5 - 3                                                     
//         DD *                                             
#                                                           
D6 - 1                                                     
D6 - 2                                                     
D6 - 3                                                     
//SORTOUT  DD SYSOUT=*                                     
//SYSIN    DD *                                             
  INREC IFTHEN=(WHEN=INIT,OVERLAY=(81:C'1',SEQNUM,8,ZD)),   
  IFTHEN=(WHEN=(1,1,CH,EQ,C'#'),OVERLAY=(81:9C'0'))         
  SORT FIELDS=(81,9,CH,A),EQUALS                           
  SUM FIELDS=NONE                                           
  OUTREC BUILD=(1,80)                                       
//*


The output from the above is
#             
D1 - 1         
D1 - 2         
D1 - 3         
D2 - 1         
D2 - 2         
D3 - 1         
D3 - 2         
D3 - 3         
D4 - 1         
D4 - 2         
D4 - 3         
D5 - 1         
D5 - 2         
D5 - 3         
D6 - 1         
D6 - 2         
D6 - 3         
Kolusu - DFSORT Development Team (IBM)
DFSORT is on the Web at:
www.ibm.com/storage/dfsort
skolusu
 
Posts: 586
Joined: Wed Apr 02, 2008 10:38 pm
Has thanked: 0 time
Been thanked: 39 times


Return to DFSORT/ICETOOL/ICEGENER

 


  • Related topics
    Replies
    Views
    Last post