IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Two file match with a twist....


IBM Mainframe Forums -> DFSORT/ICETOOL
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
srj1957

New User


Joined: 15 Dec 2005
Posts: 72
Location: RALEIGH NC, USA

PostPosted: Wed Dec 06, 2006 9:10 pm
Reply with quote

Take Name from 1st record in File1 (POS 12 lenght 30) and find a match on the Name in File2 (POS 1 Lenght 30),
If matched, then copy the data from of File2 (pos 31 lenght 9) bytes and append them to the full record from File1 to create output File 3

Now take Name from 2nd recond in File1 and start at beginning of File2 and look for match...then create File3 the same way as before

Now take Name from 3rd recond in File1 and start at beginning of File2 and look for match...If cannot find a match then just take full file2 and write out with 'NO MATCH' appended.

File 1
Code:
54868452200ABACAVIR SULFATE           
00173066400ABACAVIR SULFATE           
54569559400ABACAVIR SULFATE/LAMIVUDINE
68158014951ABARELIX


File2
Code:
ABACAVIR SULFATE              001730661
ABARELIX                      575160149
ABCIXIMAB                     000027140
ABROTANUM TINCTURE            153610101
ACACIA                        369870026


File3
Code:
54868452200ABACAVIR SULFATE               001730661
00173066400ABACAVIR SULFATE               001730661
54569559400ABACAVIR SULFATE/LAMIVUDINE    NO MATCH
68158014951ABARELIX                       575160149


Can this tricky challenge be done is DFSORT?
Back to top
View user's profile Send private message
Frank Yaeger

DFSORT Developer


Joined: 15 Feb 2005
Posts: 7129
Location: San Jose, CA

PostPosted: Wed Dec 06, 2006 11:48 pm
Reply with quote

Here's a DFSORT/ICETOOL job that will do what you asked for. I assumed your input file has RECFM=FB and LRECL=80, but the job can be changed appropriately for other attributes.

Code:

//S1 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//IN1 DD DSN=...  input file1 (FB/80)
//IN2 DD DSN=...  input file2 (FB/80)
//T1 DD DSN=&&T1,UNIT=SYSDA,SPACE=(CYL,(5,5)),DISP=(MOD,PASS)
//OUT DD DSN=...  output file (FB/80)
//TOOLIN DD *
COPY FROM(IN2) TO(T1) USING(CTL1)
COPY FROM(IN1) TO(T1) USING(CTL2)
SPLICE FROM(T1) TO(OUT) ON(12,30,CH) KEEPNODUPS -
  WITHALL WITH(1,11) WITH(81,1) USING(CTL3)
/*
//CTL1CNTL DD *
  INREC BUILD=(12:1,30,43:31,9,81:C'BB')
/*
//CTL2CNTL DD *
  INREC OVERLAY=(43:C'NO MATCH',81:C'VV')
/*
//CTL3CNTL DD *
  OUTFIL FNAMES=OUT,OMIT=(81,2,CH,EQ,C'BB'),
    BUILD=(1,80)
/*
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> DFSORT/ICETOOL

 


Similar Topics
Topic Forum Replies
No new posts FTP VB File from Mainframe retaining ... JCL & VSAM 8
No new posts Extract the file name from another fi... DFSORT/ICETOOL 6
No new posts How to split large record length file... DFSORT/ICETOOL 10
No new posts Extracting Variable decimal numbers f... DFSORT/ICETOOL 17
No new posts SFTP Issue - destination file record ... All Other Mainframe Topics 2
Search our Forums:

Back to Top