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

Match 2 files using SPLICE


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

New User


Joined: 06 Feb 2007
Posts: 29
Location: Noida

PostPosted: Wed Dec 04, 2013 3:06 am
Reply with quote

Hi,

I have two files

FILE 1 - FB 245
FILE 2 - FB 512

I want to compare the two files at positions 1 with length of 2 bytes character, position 5 with length of 1 character, position 6 of 4 bytes character, position 15 with length of 1 character and position 19 of length 4 packed decimal.

I want the records from file 1 only in the matched file if found in the second file and take the data from the 96th position (7 bytes Packed decimal) and plug it to the 246th position of the matched file, so essntially the matched file will have a LRECL of 252 (245 + 7).

I tried this
Code:

//IN2    DD DSN=&&FILE2,DISP=SHR
//IN1    DD DSN=&&FILE1,DISP=SHR
//TEMP1 DD DSN=&&TEMP1,DISP=(MOD,PASS),SPACE=(CYL,(50,50)),
//             UNIT=(SYSDA,6)
//MATCH   DD DSN=MATCH.FILE,
//             UNIT=(SYSDA,6),
//             SPACE=(CYL,(50,50),RLSE),
//             DCB=(RECFM=FB,LRECL=252,BLKSIZE=0),
//             DISP=(NEW,CATLG,DELETE)
//TOOLIN DD *
  COPY FROM(IN1) TO(TEMP1) USING(CTL1)
  COPY FROM(IN2) TO(TEMP1) USING(CTL2)
  SPLICE FROM(TEMP1) TO(MATCH) ON(1,2,CH) ON(5,1,CH) ON(6,4,CH) -
                          ON(15,1,CH) ON(19,4,PD) WITH(246,7)
/*
//CTL1CNTL DD *
  OUTREC FIELDS=(1,245,246:7X)
/*
//CTL2CNTL DD *
  OUTREC FIELDS=(1:1,2,3:2X,5:5,1,6:6,4,10:5X,15:15,1,16:3X,19:19,
                 4,23:223X,246:96,7)
/*


I am not getting the desired result and some of the FILE2 records are also cropping in.
Can some one please let me know where I am making the mistake.

Thanks
Back to top
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Wed Dec 04, 2013 3:18 am
Reply with quote

Can you post the full sysout from your step please?
Back to top
View user's profile Send private message
sudib19

New User


Joined: 06 Feb 2007
Posts: 29
Location: Noida

PostPosted: Wed Dec 04, 2013 3:24 am
Reply with quote

Hi,

Below is the sysout.
Code:

ICE200I 0 IDENTIFIER FROM CALLING PROGRAM IS 0001
ICE201I H RECORD TYPE IS F - DATA STARTS IN POSITION 1
ICE751I 0 C5-K62149 C6-K90026 C7-K58148 C8-K67572 E9-K60824 C9-BASE   E5-K72040 E7-K70685
ICE143I 0 BLOCKSET     COPY  TECHNIQUE SELECTED
ICE250I 0 VISIT http://www.ibm.com/storage/dfsort FOR DFSORT PAPERS, EXAMPLES AND MORE
ICE000I 0 - CONTROL STATEMENTS FOR 5694-A01, Z/OS DFSORT V1R12 - 15:17 ON TUE DEC 03, 2013 -
            OUTREC FIELDS=(1,245,246:7X)
ICE146I 0 END OF STATEMENTS FROM CTL1CNTL - PARAMETER LIST STATEMENTS FOLLOW
          DEBUG NOABEND,ESTAE
          OPTION MSGDDN=DFSMSG,LIST,MSGPRT=ALL,RESINV=0,SORTDD=CTL1,SORTIN=IN1,SO*
                         RTOUT=TEMP1,DYNALLOC
          SORT FIELDS=COPY
ICE201I H RECORD TYPE IS F - DATA STARTS IN POSITION 1
ICE751I 0 C5-K62149 C6-K90026 C7-K58148 C8-K67572 E9-K60824 C9-BASE   E5-K72040 E7-K70685
ICE193I 0 ICEAM2 INVOCATION ENVIRONMENT IN EFFECT - ICEAM2 ENVIRONMENT SELECTED
ICE088I 0 ABCDE .S1      .        , INPUT LRECL = 245, BLKSIZE = 23275, TYPE = FB
ICE093I 0 MAIN STORAGE = (MAX,6291456,6291456)
ICE156I 0 MAIN STORAGE ABOVE 16MB = (6234096,6234096)
ICE127I 0 OPTIONS: OVFLO=RC0 ,PAD=RC0 ,TRUNC=RC0 ,SPANINC=RC16,VLSCMP=N,SZERO=Y,RESET=Y,VSAMEMT=Y,DYNSPC=256
ICE128I 0 OPTIONS: SIZE=6291456,MAXLIM=1048576,MINLIM=450560,EQUALS=N,LIST=Y,ERET=RC16 ,MSGDDN=DFSMSG
ICE129I 0 OPTIONS: VIO=N,RESDNT=ALL ,SMF=NO   ,WRKSEC=Y,OUTSEC=Y,VERIFY=N,CHALT=N,DYNALOC=N             ,ABCODE=MSG
ICE130I 0 OPTIONS: RESALL=8192,RESINV=0,SVC=109 ,CHECK=Y,WRKREL=Y,OUTREL=Y,CKPT=N,COBEXIT=COB2
ICE131I 0 OPTIONS: TMAXLIM=6291456,ARESALL=0,ARESINV=0,OVERRGN=16384,CINV=Y,CFW=Y,DSA=0
ICE132I 0 OPTIONS: VLSHRT=N,ZDPRINT=Y,IEXIT=N,TEXIT=N,LISTX=N,EFS=NONE    ,EXITCK=S,PARMDDN=DFSPARM ,FSZEST=N
ICE133I 0 OPTIONS: HIPRMAX=OPTIMAL,DSPSIZE=MAX ,ODMAXBF=0,SOLRF=Y,VLLONG=N,VSAMIO=N,MOSIZE=MAX
ICE235I 0 OPTIONS: NULLOUT=RC0
ICE236I 0 OPTIONS: DYNAPCT=10 ,MOWRK=Y
ICE084I 0 EXCP ACCESS METHOD USED FOR TEMP1
ICE084I 0 EXCP ACCESS METHOD USED FOR IN1
ICE751I 1 EF-BASE   F0-K66717 E8-K70685
ICE090I 0 OUTPUT LRECL = 252, BLKSIZE = 23436, TYPE = FB   (SDB)
ICE171I 0 SORTOUT LRECL OF 252 IS DIFFERENT FROM SORTIN(NN) LRECL OF 245 - RC=0
ICE055I 0 INSERT 0, DELETE 0
ICE054I 0 RECORDS - IN: 262, OUT: 262
ICE052I 0 END OF DFSORT
ICE200I 0 IDENTIFIER FROM CALLING PROGRAM IS 0002
ICE201I H RECORD TYPE IS F - DATA STARTS IN POSITION 1
ICE751I 0 C5-K62149 C6-K90026 C7-K58148 C8-K67572 E9-K60824 C9-BASE   E5-K72040 E7-K70685
ICE143I 0 BLOCKSET     COPY  TECHNIQUE SELECTED
ICE250I 0 VISIT http://www.ibm.com/storage/dfsort FOR DFSORT PAPERS, EXAMPLES AND MORE
ICE000I 0 - CONTROL STATEMENTS FOR 5694-A01, Z/OS DFSORT V1R12 - 15:17 ON TUE DEC 03, 2013 -
            OUTREC FIELDS=(1:1,2,3:2X,5:5,1,6:6,4,10:5X,15:15,1,16:3X,19:19,
                           4,23:223X,246:96,7)
ICE146I 0 END OF STATEMENTS FROM CTL2CNTL - PARAMETER LIST STATEMENTS FOLLOW
          DEBUG NOABEND,ESTAE
          OPTION MSGDDN=DFSMSG,LIST,MSGPRT=ALL,RESINV=0,SORTDD=CTL2,SORTIN=IN2,SO*
                         RTOUT=TEMP1,DYNALLOC
          SORT FIELDS=COPY
ICE201I H RECORD TYPE IS F - DATA STARTS IN POSITION 1
ICE751I 0 C5-K62149 C6-K90026 C7-K58148 C8-K67572 E9-K60824 C9-BASE   E5-K72040 E7-K70685
ICE193I 0 ICEAM2 INVOCATION ENVIRONMENT IN EFFECT - ICEAM2 ENVIRONMENT SELECTED
ICE088I 0 ABCDE .S1      .        , INPUT LRECL = 512, BLKSIZE = 23040, TYPE = FB
ICE093I 0 MAIN STORAGE = (MAX,6291456,6291456)
ICE156I 0 MAIN STORAGE ABOVE 16MB = (6234096,6234096)
ICE127I 0 OPTIONS: OVFLO=RC0 ,PAD=RC0 ,TRUNC=RC0 ,SPANINC=RC16,VLSCMP=N,SZERO=Y,RESET=Y,VSAMEMT=Y,DYNSPC=256
ICE128I 0 OPTIONS: SIZE=6291456,MAXLIM=1048576,MINLIM=450560,EQUALS=N,LIST=Y,ERET=RC16 ,MSGDDN=DFSMSG
ICE129I 0 OPTIONS: VIO=N,RESDNT=ALL ,SMF=NO   ,WRKSEC=Y,OUTSEC=Y,VERIFY=N,CHALT=N,DYNALOC=N             ,ABCODE=MSG
ICE130I 0 OPTIONS: RESALL=8192,RESINV=0,SVC=109 ,CHECK=Y,WRKREL=Y,OUTREL=Y,CKPT=N,COBEXIT=COB2
ICE131I 0 OPTIONS: TMAXLIM=6291456,ARESALL=0,ARESINV=0,OVERRGN=16384,CINV=Y,CFW=Y,DSA=0
ICE132I 0 OPTIONS: VLSHRT=N,ZDPRINT=Y,IEXIT=N,TEXIT=N,LISTX=N,EFS=NONE    ,EXITCK=S,PARMDDN=DFSPARM ,FSZEST=N
ICE133I 0 OPTIONS: HIPRMAX=OPTIMAL,DSPSIZE=MAX ,ODMAXBF=0,SOLRF=Y,VLLONG=N,VSAMIO=N,MOSIZE=MAX
ICE235I 0 OPTIONS: NULLOUT=RC0
ICE236I 0 OPTIONS: DYNAPCT=10 ,MOWRK=Y
ICE084I 0 EXCP ACCESS METHOD USED FOR TEMP1
ICE084I 0 EXCP ACCESS METHOD USED FOR IN2
ICE751I 1 EF-BASE   F0-K66717 E8-K70685
ICE090I 0 OUTPUT LRECL = 252, BLKSIZE = 23436, TYPE = FB
ICE171I 0 SORTOUT LRECL OF 252 IS DIFFERENT FROM SORTIN(NN) LRECL OF 512 - RC=0
ICE055I 0 INSERT 0, DELETE 0
ICE054I 0 RECORDS - IN: 12413, OUT: 12413
ICE052I 0 END OF DFSORT
ICE200I 0 IDENTIFIER FROM CALLING PROGRAM IS 0003
ICE201I H RECORD TYPE IS F - DATA STARTS IN POSITION 1
ICE751I 0 C5-K62149 C6-K90026 C7-K58148 C8-K67572 E4-K58148 C9-BASE   E5-K72040 E6-K58148 E7-K70685
ICE143I 0 BLOCKSET     SORT  TECHNIQUE SELECTED
ICE250I 0 VISIT http://www.ibm.com/storage/dfsort FOR DFSORT PAPERS, EXAMPLES AND MORE
ICE000I 0 - CONTROL STATEMENTS FOR 5694-A01, Z/OS DFSORT V1R12 - 15:17 ON TUE DEC 03, 2013 -
          DEBUG NOABEND,ESTAE
          OPTION MSGDDN=DFSMSG,LIST,MSGPRT=ALL,RESINV=0,SORTIN=TEMP1,SORTOUT=MATC*
                         H,DYNALLOC,SZERO,EQUALS,NOVLSHRT,LOCALE=NONE,NOCHECK
          SORT FIELDS=(1,2,CH,A,5,1,CH,A,6,4,CH,A,15,1,CH,A,19,4,PD,A)
          MODS E35=(ICE35DU,12288)
ICE201I H RECORD TYPE IS F - DATA STARTS IN POSITION 1
ICE751I 0 C5-K62149 C6-K90026 C7-K58148 C8-K67572 E4-K58148 C9-BASE   E5-K72040 E6-K58148 E7-K70685
ICE193I 0 ICEAM2 INVOCATION ENVIRONMENT IN EFFECT - ICEAM2 ENVIRONMENT SELECTED
ICE088I 1 ABCDE .S1      .        , INPUT LRECL = 252, BLKSIZE = 23436, TYPE = FB
ICE093I 0 MAIN STORAGE = (MAX,6291456,6291456)
ICE156I 0 MAIN STORAGE ABOVE 16MB = (5259264,5242880)
ICE127I 0 OPTIONS: OVFLO=RC0 ,PAD=RC0 ,TRUNC=RC0 ,SPANINC=RC16,VLSCMP=N,SZERO=Y,RESET=Y,VSAMEMT=Y,DYNSPC=256
ICE128I 0 OPTIONS: SIZE=6291456,MAXLIM=1048576,MINLIM=450560,EQUALS=Y,LIST=Y,ERET=RC16 ,MSGDDN=DFSMSG
ICE129I 0 OPTIONS: VIO=N,RESDNT=ALL ,SMF=NO   ,WRKSEC=Y,OUTSEC=Y,VERIFY=N,CHALT=N,DYNALOC=(SYSDA   ,004),ABCODE=MSG
ICE130I 0 OPTIONS: RESALL=8192,RESINV=0,SVC=109 ,CHECK=N,WRKREL=Y,OUTREL=Y,CKPT=N,COBEXIT=COB2
ICE131I 0 OPTIONS: TMAXLIM=6291456,ARESALL=0,ARESINV=0,OVERRGN=16384,CINV=Y,CFW=Y,DSA=0
ICE132I 0 OPTIONS: VLSHRT=N,ZDPRINT=Y,IEXIT=N,TEXIT=N,LISTX=N,EFS=NONE    ,EXITCK=S,PARMDDN=DFSPARM ,FSZEST=N
ICE133I 0 OPTIONS: HIPRMAX=OPTIMAL,DSPSIZE=MAX ,ODMAXBF=0,SOLRF=Y,VLLONG=N,VSAMIO=N,MOSIZE=MAX
ICE235I 0 OPTIONS: NULLOUT=RC0
ICE236I 0 OPTIONS: DYNAPCT=10 ,MOWRK=Y
ICE084I 0 EXCP ACCESS METHOD USED FOR MATCH
ICE084I 0 EXCP ACCESS METHOD USED FOR TEMP1
ICE750I 0 DC 3210732 TC 0 CS DSVVV KSZ 17 VSZ 17
ICE752I 0 FSZ=12741 RC  IGN=0 E  AVG=260 0  WSP=4303 C  DYN=0 0
ICE751I 1 DE-K61787 D5-K58148 D3-K58148 D7-K58148 E8-K70685
ICE090I 0 OUTPUT LRECL = 252, BLKSIZE = 23436, TYPE = FB
ICE055I 0 INSERT 342, DELETE 12675
ICE054I 0 RECORDS - IN: 12675, OUT: 342
ICE134I 0 NUMBER OF BYTES SORTED: 3194100
ICE253I 0 RECORDS SORTED - PROCESSED: 12675, EXPECTED: 12741
ICE165I 0 TOTAL WORK DATA SET TRACKS ALLOCATED: 0 , TRACKS USED: 0
ICE199I 0 MEMORY OBJECT USED AS MAIN STORAGE = 0M BYTES
ICE299I 0 MEMORY OBJECT USED AS WORK STORAGE = 4M BYTES
ICE180I 0 HIPERSPACE STORAGE USED = 0K BYTES
ICE188I 0 DATA SPACE STORAGE USED = 0K BYTES
ICE052I 0 END OF DFSORT
Back to top
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Wed Dec 04, 2013 4:47 am
Reply with quote

Thanks. Your DFSORT is up-to-date enought to support JOINKEYS, which you should fine much easier than SPLICE.
Back to top
View user's profile Send private message
Skolusu

Senior Member


Joined: 07 Dec 2007
Posts: 2205
Location: San Jose

PostPosted: Wed Dec 04, 2013 4:54 am
Reply with quote

Why use SPLICE? You have the latest PTF installed which supports joinkeys.So use the following JCL
Code:

//STEP0100 EXEC PGM=SORT                                 
//SYSOUT   DD SYSOUT=*                                   
//INA      DD DISP=SHR,DSN=Your 245 byte file             
//INB      DD DISP=SHR,DSN=Your 512 byte file             
//SORTOUT  DD SYSOUT=*                                   
//SYSIN    DD *                                           
  OPTION COPY                                             
  JOINKEYS F1=INA,FIELDS=(1,2,A,5,1,A,6,4,A,15,1,A,19,4,A)
  JOINKEYS F2=INB,FIELDS=(1,2,A,5,1,A,6,4,A,15,1,A,19,4,A)
  REFORMAT FIELDS=(F1:1,245,F2:23,7)                     
//*                                                       
//JNF2CNTL DD *                                           
  INREC BUILD=(1,22,96,7)                                 
//*
Back to top
View user's profile Send private message
sudib19

New User


Joined: 06 Feb 2007
Posts: 29
Location: Noida

PostPosted: Wed Dec 04, 2013 5:39 am
Reply with quote

Hi Bill,

I had tried Joinkeys before but I am not sure if the PD match works or not.. With this I get multiple occurences.

Code:

ICE411I 0 THIS IS THE JOINKEYS MAIN TASK FOR JOINING F1 AND F2
ICE416I 0 JOINKEYS IS USING THE F1 SUBTASK FOR SORTJNF1 - SEE JNF1JMSG MESSAGES
ICE416I 1 JOINKEYS IS USING THE F2 SUBTASK FOR SORTJNF2 - SEE JNF2JMSG MESSAGES
ICE419I 0 JOINED RECORDS: TYPE=F, LENGTH=252
ICE201I H RECORD TYPE IS F - DATA STARTS IN POSITION 1
ICE751I 0 C5-K62149 C6-K90026 C7-K58148 C8-K67572 E9-K60824 C9-BASE   E5-K72040 E7-K70685
ICE143I 0 BLOCKSET     COPY  TECHNIQUE SELECTED
ICE250I 0 VISIT http://www.ibm.com/storage/dfsort FOR DFSORT PAPERS, EXAMPLES AND MORE
ICE000I 1 - CONTROL STATEMENTS FOR 5694-A01, Z/OS DFSORT V1R12 - 18:35 ON TUE DEC 03, 2013 -
            OPTION COPY
            JOINKEYS FILE=F1,FIELDS=(1,2,A,5,1,A,6,4,A,15,1,A,19,4,A)
            JOINKEYS FILE=F2,FIELDS=(1,2,A,3,1,A,4,4,A,08,1,A,09,4,A)
            REFORMAT FIELDS=(F1:1,245,F2:13,7)
ICE411I 0 THIS IS THE JOINKEYS MAIN TASK FOR JOINING F1 AND F2
ICE416I 0 JOINKEYS IS USING THE F1 SUBTASK FOR SORTJNF1 - SEE JNF1JMSG MESSAGES
ICE416I 1 JOINKEYS IS USING THE F2 SUBTASK FOR SORTJNF2 - SEE JNF2JMSG MESSAGES
ICE419I 0 JOINED RECORDS: TYPE=F, LENGTH=252
ICE201I H RECORD TYPE IS F - DATA STARTS IN POSITION 1
ICE751I 0 C5-K62149 C6-K90026 C7-K58148 C8-K67572 E9-K60824 C9-BASE   E5-K72040 E7-K70685
ICE193I 0 ICEAM1 INVOCATION ENVIRONMENT IN EFFECT - ICEAM1 ENVIRONMENT SELECTED
ICE089I 0 ABCDE .S1      .        , INPUT LRECL = 252, TYPE = F
ICE093I 0 MAIN STORAGE = (MAX,6291456,6291456)
ICE156I 0 MAIN STORAGE ABOVE 16MB = (6234096,6234096)
ICE127I 0 OPTIONS: OVFLO=RC0 ,PAD=RC0 ,TRUNC=RC0 ,SPANINC=RC16,VLSCMP=N,SZERO=Y,RESET=Y,VSAMEMT=Y,DYNSPC=256
ICE128I 0 OPTIONS: SIZE=6291456,MAXLIM=2097152,MINLIM=450560,EQUALS=N,LIST=Y,ERET=RC16 ,MSGDDN=SYSOUT
ICE129I 0 OPTIONS: VIO=N,RESDNT=ALL ,SMF=NO   ,WRKSEC=Y,OUTSEC=Y,VERIFY=N,CHALT=N,DYNALOC=N             ,ABCODE=MSG
ICE130I 0 OPTIONS: RESALL=8192,RESINV=0,SVC=109 ,CHECK=Y,WRKREL=Y,OUTREL=Y,CKPT=N,COBEXIT=COB2
ICE131I 0 OPTIONS: TMAXLIM=6291456,ARESALL=0,ARESINV=0,OVERRGN=65536,CINV=Y,CFW=Y,DSA=0
ICE132I 0 OPTIONS: VLSHRT=N,ZDPRINT=Y,IEXIT=N,TEXIT=N,LISTX=N,EFS=NONE    ,EXITCK=S,PARMDDN=DFSPARM ,FSZEST=N
ICE133I 0 OPTIONS: HIPRMAX=OPTIMAL,DSPSIZE=MAX ,ODMAXBF=0,SOLRF=Y,VLLONG=N,VSAMIO=N,MOSIZE=MAX
ICE235I 0 OPTIONS: NULLOUT=RC0
ICE236I 0 OPTIONS: DYNAPCT=10 ,MOWRK=Y
ICE084I 0 EXCP ACCESS METHOD USED FOR SORTOUT
ICE751I 1 EF-BASE   F0-K66717 E8-K70685
ICE421I 0 JOINED RECORDS: COUNT=2607
ICE090I 0 OUTPUT LRECL = 252, BLKSIZE = 23436, TYPE = FB
ICE055I 0 INSERT 2607, DELETE 0
ICE054I 0 RECORDS - IN: 0, OUT: 2607
ICE052I 0 END OF DFSORT


If you see in my previous post the IN1 file has 262 records, and I am expecting 262 records but here I get 2607 records.

Thanks
Back to top
View user's profile Send private message
Skolusu

Senior Member


Joined: 07 Dec 2007
Posts: 2205
Location: San Jose

PostPosted: Wed Dec 04, 2013 11:34 pm
Reply with quote

sudib19 wrote:
Hi Bill,

I had tried Joinkeys before but I am not sure if the PD match works or not.. With this I get multiple occurences.


You probably have duplicate keys in either one of your files or both files. If you just want the unique values then you just add SUM FIELDS=NONE for the subtasks.
Code:

//*                                                       
//JNF1CNTL DD *           
  SUM FIELDS=NONE                               
//*
//JNF2CNTL DD *           
  INREC BUILD=(1,2,5,1,6,4,15,1,19,4,96,7)                             
  SUM FIELDS=NONE                               
//*
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 Compare 2 files and retrive records f... DFSORT/ICETOOL 3
No new posts Compare 2 files(F1 & F2) and writ... JCL & VSAM 8
No new posts Write line by line from two files DFSORT/ICETOOL 7
No new posts Compare only first records of the fil... SYNCSORT 7
No new posts Merge two VSAM KSDS files into third ... JCL & VSAM 6
Search our Forums:

Back to Top