Split record into multiple records and remove duplicates

In this Mainframe Forum - You can post your queries on JCL, OS/390 JCL, MVS JCL, z/OS JCL, JES2 & JES3

Moderators: Frank Yaeger, DikDude, Moderator Group

Post Reply
naveenreddychalla
Member
Posts: 2
Joined: Tue Nov 17, 2009 6:47 am
Location: Hyderabad

Split record into multiple records and remove duplicates

Post by naveenreddychalla » Tue Dec 15, 2009 5:34 pm

Can anyone provide me a logic to split 1 record to get several records & remove the

duplicate data

My input file has data:

Column 1 - 3 Column 11 - 13 Column 21 - 23
--------------- ------------------ ------------------
123 234 345
888 999 999
777 777 555

My output file should contain values like this

Column 1 - 3
---------------
123
234
345
555
777
888
999
naveen reddy

User avatar
Frank Yaeger
Moderator
Posts: 812
Joined: Sat Feb 18, 2006 5:45 am
Location: San Jose, CA
Contact:

Post by Frank Yaeger » Tue Dec 15, 2009 8:15 pm

What is the RECFM and LRECL of the input file?

Can the dup values occur across records, or only within records (as shown in your example). For example, could you have input records like this:

123 234 345
888 999 999
777 777 555
999 123 777
345 222 666

If so, what would the expected output be?
Frank Yaeger - DFSORT Development Team (IBM) - yaeger@us.ibm.com
Specialties: JOINKEYS, FINDREP, WHEN=GROUP, ICETOOL, Symbols, Migration
=> DFSORT/MVS is on the Web at http://www.ibm.com/storage/dfsort

naveenreddychalla
Member
Posts: 2
Joined: Tue Nov 17, 2009 6:47 am
Location: Hyderabad

Post by naveenreddychalla » Wed Dec 16, 2009 2:39 pm

the o/p should be
123
222
234
345
555
666
777
888
999

RECFM FB and LRECL 80
naveen reddy

User avatar
Frank Yaeger
Moderator
Posts: 812
Joined: Sat Feb 18, 2006 5:45 am
Location: San Jose, CA
Contact:

Post by Frank Yaeger » Wed Dec 16, 2009 10:16 pm

Here's a DFSORT/ICETOOL job that will do what I think you asked for:

Code: Select all

//S1   EXEC  PGM=ICETOOL
//TOOLMSG   DD  SYSOUT=*
//DFSMSG    DD  SYSOUT=*
//IN DD *
123       234       345
888       999       999
777       777       555
999       123       777
345       222       666
//T1 DD DSN=&&T1,UNIT=SYSDA,SPACE=(CYL,(5,5)),DISP=(,PASS)
//OUT DD DSN=...  output file (FB/80)
//TOOLIN DD *
COPY FROM(IN) USING(CTL1)
SELECT FROM(T1) TO(OUT) ON(1,3,CH) FIRST USING(CTL2)
/*
//CTL1CNTL DD *
  OUTFIL FNAMES=T1,BUILD=(1,3,/,11,3,/,21,3)
/*
//CTL2CNTL DD *
  OUTFIL FNAMES=OUT,OVERLAY=(80:X)
/*
Frank Yaeger - DFSORT Development Team (IBM) - yaeger@us.ibm.com
Specialties: JOINKEYS, FINDREP, WHEN=GROUP, ICETOOL, Symbols, Migration
=> DFSORT/MVS is on the Web at http://www.ibm.com/storage/dfsort

Post Reply

FREE TUTORIALS

Tutorials
Free tutorials from mainframegurukul
  • JCL Tutorial
    Covers all important JCL concepts.
  • Cobol Tutorial
    This tutorials covers all Cobol Topics from STRING to COMP-3.
  • DB2 Tutorial
    DB2 Tutorial focuses on DB2 COBOL Programming.
  • SORT Tutorial
    This Tutorial covers all important aspects of DFSORT with examples
  • CICS Tutorial
    This CICS tutorial covers CICS concepts and CICS Basics, CICS COBOL Programming.
Interview
Mainframe Interview questions



Other References
Mainframe Tools and others