View previous topic :: View next topic
Author
Message
abhishekmdwivedi New User Joined: 22 Aug 2006Posts: 95 Location: india
Hi,
I have a huge file containing 256374439 records(File-2) and second file containing records 721(File-1). I have to make sure that records present in File-1 having a match with the records present in File-2 NOT get written into the output file. (i.e all the unmatched records from file-2 are to be written)
Field on which match is to be performed is :
File-1 : Position 1 - PD
File -2 : Position 35 - PD
Here are the control cards I have used :
File -1 containing records 721 :-
Code:
SORT FIELDS=(1,6,PD,A)
OUTREC FIELDS=(35:1,6,44:C'11')
SUM FIELDS=NONE
File -2 containing 256374439 records
Code:
SORT FIELDS=(35,6,PD,A)
OUTREC FIELDS=(1:1,43,44:C'22')
Here's the splice :
Code:
COPY FROM(MIGSERV) TO(TMP2) USING(CPY1)
COPY FROM(INTABLE) TO(TMP2) USING(CPY2)
SPLICE FROM(TMP2) TO(OUTTABLE) -
USING(CTL3) KEEPNODUPS KEEPBASE -
WITHALL -
ON(35,6,PD) -
WITH(35,6) -
WITH(45,1)
Output :
Code:
OUTFIL FNAMES=OUTTABLE,
INCLUDE=(44,2,CH,EQ,C'22'),OUTREC=(1,43)
Now the problem is :
The output file doesn't contain matched records from File-1 & File-2. But there are lot many duplicate records present in the output file.
Please Help.
Back to top
krisprems Active Member Joined: 27 Nov 2006Posts: 649 Location: India
abhishekmdwivedi
Need a quick resolution?
Then provide a sample set of i/p rec and o/p rec,sho what is expected and what you are getting?
Back to top
abhishekmdwivedi New User Joined: 22 Aug 2006Posts: 95 Location: india
Input :
File - 1 :
Code:
61203000
61651000
82770000
53770000
File -2 :
Code:
09.11.1999 1488575300 05.10.1999 61203000
10.08.1999 2481921200 06.07.1999 61203000
13.10.1995 1746460000 18.02.1993 61651000
01.11.1993 1611422000 27.09.1993 82770000
01.11.1993 1612422000 27.09.1993 53770000
01.03.1995 490356300 14.02.1995 23691000
01.03.1995 490456300 14.02.1995 18651000
01.03.1995 491356300 14.02.1995 33691000
01.03.1995 491456300 10.11.1994 44081000
01.03.1995 492356300 14.02.1995 53691000
01.03.1995 492456300 14.02.1995 63651000
By the previous given control cards I am getting this result.
Output currently coming as :
Code:
09.11.1999 1488575300 05.10.1999 61203000
09.11.1999 1488575300 05.10.1999 61203000
13.10.1995 1746460000 18.02.1993 61651000
01.11.1993 1611422000 27.09.1993 82770000
01.11.1993 1611422000 27.09.1993 82770000
01.03.1995 490356300 14.02.1995 23691000
01.03.1995 490356300 14.02.1995 23691000
01.03.1995 490356300 14.02.1995 23691000
01.03.1995 490356300 14.02.1995 23691000
01.03.1995 490356300 14.02.1995 23691000
This is the one of the records which is duplicate :
Code:
09.11.1999 1488575300 05.10.1999 [b]61203000[/b]
While for same number 61203000, the second record as below is missing from the output file:
Code:
10.08.1999 2481921200 06.07.1999 [b]61203000[/b]
Expected Result :
Only following records are required in the output file :
01.03.1995 490356300 14.02.1995 23691000
01.03.1995 490456300 14.02.1995 18651000
01.03.1995 491356300 14.02.1995 33691000
01.03.1995 491456300 10.11.1994 44081000
01.03.1995 492356300 14.02.1995 53691000
01.03.1995 492456300 14.02.1995 63651000
Scenario :
Records from File-2 which are not present in File-1 are to be written into the output.
Back to top
krisprems Active Member Joined: 27 Nov 2006Posts: 649 Location: India
Quote:
Scenario :
Records from File-2 which are not present in File-1 are to be written into the output.
I got your req...
paste your TOOLMSG and DFSMSG...
Back to top
abhishekmdwivedi New User Joined: 22 Aug 2006Posts: 95 Location: india
Here's the DFSMSG :
Code:
1ICE200I 0 IDENTIFIER FROM CALLING PROGRAM IS 0001
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 V1R5 - 03:26 ON FRI FEB 01, 2008 -
0 OPTION MAINSIZE=64M,DYNALLOC=(3390,20),NOOUTREL
ICE140I 0 END OF PARAMETERS FROM DFSPARM - SYSIN OR CPY1CNTL/PARAMETER LIST CONTROL STATEMENTS FOLLOW
SORT FIELDS=(1,6,PD,A)
OUTREC FIELDS=(35:1,6,44:C'11')
SUM FIELDS=NONE
ICE146I 0 END OF STATEMENTS FROM CPY1CNTL - PARAMETER LIST STATEMENTS FOLLOW
DEBUG NOABEND,ESTAE
OPTION MSGDDN=DFSMSG,LIST,MSGPRT=ALL,RESINV=0,SORTDD=CPY1,SORTIN=MIGSER*
V,SORTOUT=TMP2,DYNALLOC
SORT FIELDS=COPY
ICE201I E RECORD TYPE IS F - DATA STARTS IN POSITION 1
ICE751I 0 C5-K26318 C6-K90007 C7-K90000 C8-K23476 E9-K90007 C9-BASE E5-K24705 E7-K24705
ICE193I 0 ICEAM2 ENVIRONMENT IN EFFECT - ICEAM2 INSTALLATION MODULE SELECTED
ICE088I 1 QFPT4NC1.STEP01 .MERGE1 , INPUT LRECL = 6, BLKSIZE = 27996, TYPE = FB
ICE092I 0 MAIN STORAGE = (67108864,67108864,67108864)
ICE156I 0 MAIN STORAGE ABOVE 16MB = (67025944,67025944)
ICE127I 0 OPTIONS: OVFLO=RC0 ,PAD=RC0 ,TRUNC=RC0 ,SPANINC=RC16,VLSCMP=N,SZERO=Y,RESET=Y,VSAMEMT=Y,DYNSPC=32
ICE128I 0 OPTIONS: SIZE=67108864,MAXLIM=3145728,MINLIM=450560,EQUALS=N,LIST=Y,ERET=RC16 ,MSGDDN=DFSMSG
ICE129I 0 OPTIONS: VIO=N,RESDNT=ALL ,SMF=FULL ,WRKSEC=Y,OUTSEC=Y,VERIFY=N,CHALT=N,DYNALOC=N ,ABCODE=MSG
ICE130I 0 OPTIONS: RESALL=0,RESINV=0,SVC=109 ,CHECK=Y,WRKREL=Y,OUTREL=N,CKPT=N,STIMER=Y,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=Y,TEXIT=Y,LISTX=N,EFS=NONE ,EXITCK=S,PARMDDN=DFSPARM ,FSZEST=N
ICE133I 0 OPTIONS: HIPRMAX=10 ,DSPSIZE=10 ,ODMAXBF=0,SOLRF=Y,VLLONG=N,VSAMIO=N,MOSIZE=MAX
ICE235I 0 OPTIONS: NULLOUT=RC0
ICE084I 0 EXCP ACCESS METHOD USED FOR TMP2
ICE084I 0 EXCP ACCESS METHOD USED FOR MIGSERV
ICE750I 0 DC 27996 TC 0 CS DSVOO KSZ 7 VSZ 7
ICE752I 0 FSZ=4666 RC IGN=0 E AVG=8 0 WSP=49 C DYN=0 0
ICE751I 1 DE-K24705 D5-K24705 D9-K24705 E8-K24705
ICE090I 0 OUTPUT LRECL = 45, BLKSIZE = 27990, TYPE = FB (SDB)
ICE171I 0 SORTOUT LRECL OF 45 IS DIFFERENT FROM SORTIN(NN) LRECL OF 6 - RC=0
ICE080I 0 IN MAIN STORAGE SORT
ICE055I 0 INSERT 0, DELETE 3
ICE054I 0 RECORDS - IN: 724, OUT: 721
ICE134I 0 NUMBER OF BYTES SORTED: 4344
ICE199I 0 MEMORY OBJECT STORAGE USED = 0M BYTES
ICE180I 0 HIPERSPACE STORAGE USED = 0K BYTES
ICE188I 0 DATA SPACE STORAGE USED = 0K BYTES
ICE052I 0 END OF DFSORT
1ICE200I 0 IDENTIFIER FROM CALLING PROGRAM IS 0002
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 V1R5 - 03:26 ON FRI FEB 01, 2008 -
0 OPTION MAINSIZE=64M,DYNALLOC=(3390,20),NOOUTREL
ICE140I 0 END OF PARAMETERS FROM DFSPARM - SYSIN OR CPY2CNTL/PARAMETER LIST CONTROL STATEMENTS FOLLOW
SORT FIELDS=(35,6,PD,A)
OUTREC FIELDS=(1:1,43,44:C'22')
ICE146I 0 END OF STATEMENTS FROM CPY2CNTL - PARAMETER LIST STATEMENTS FOLLOW
DEBUG NOABEND,ESTAE
OPTION MSGDDN=DFSMSG,LIST,MSGPRT=ALL,RESINV=0,SORTDD=CPY2,SORTIN=INTABL*
E,SORTOUT=TMP2,DYNALLOC
SORT FIELDS=COPY
ICE201I E RECORD TYPE IS F - DATA STARTS IN POSITION 1
ICE751I 0 C5-K26318 C6-K90007 C7-K90000 C8-K23476 E9-K90007 C9-BASE E5-K24705 E6-K18181 C4-K24705 E7-K24705
ICE193I 0 ICEAM2 ENVIRONMENT IN EFFECT - ICEAM2 INSTALLATION MODULE SELECTED
ICE088I 1 QFPT4NC1.STEP01 .MERGE1 , INPUT LRECL = 43, BLKSIZE = 27993, TYPE = FB
ICE092I 0 MAIN STORAGE = (67108864,67108864,67108864)
ICE156I 0 MAIN STORAGE ABOVE 16MB = (66758296,66758296)
ICE127I 0 OPTIONS: OVFLO=RC0 ,PAD=RC0 ,TRUNC=RC0 ,SPANINC=RC16,VLSCMP=N,SZERO=Y,RESET=Y,VSAMEMT=Y,DYNSPC=32
ICE128I 0 OPTIONS: SIZE=67108864,MAXLIM=3145728,MINLIM=450560,EQUALS=N,LIST=Y,ERET=RC16 ,MSGDDN=DFSMSG
ICE129I 0 OPTIONS: VIO=N,RESDNT=ALL ,SMF=FULL ,WRKSEC=Y,OUTSEC=Y,VERIFY=N,CHALT=N,DYNALOC=(3390 ,020),ABCODE=MSG
ICE130I 0 OPTIONS: RESALL=0,RESINV=0,SVC=109 ,CHECK=Y,WRKREL=Y,OUTREL=N,CKPT=N,STIMER=Y,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=Y,TEXIT=Y,LISTX=N,EFS=NONE ,EXITCK=S,PARMDDN=DFSPARM ,FSZEST=N
ICE133I 0 OPTIONS: HIPRMAX=10 ,DSPSIZE=10 ,ODMAXBF=0,SOLRF=Y,VLLONG=N,VSAMIO=N,MOSIZE=MAX
ICE235I 0 OPTIONS: NULLOUT=RC0
ICE084I 0 EXCP ACCESS METHOD USED FOR TMP2
ICE084I 0 EXCP ACCESS METHOD USED FOR INTABLE
ICE750I 0 DC 11024287239 TC 0 CS DSVOO KSZ 7 VSZ 7
ICE752I 0 FSZ=256378773 RC IGN=0 E AVG=48 0 WSP=15983614 C DYN=288933 56648
ICE751I 1 DE-K24705 D5-K24705 D3-K24705 D7-K24705 E8-K24705
ICE090I 0 OUTPUT LRECL = 45, BLKSIZE = 27990, TYPE = FB
ICE171I 0 SORTOUT LRECL OF 45 IS DIFFERENT FROM SORTIN(NN) LRECL OF 43 - RC=0
ICE096I 0 SUCCESSFUL RECOVERY FROM B37 ABEND(S) FOR WORK DATA SET(S)
ICE055I 0 INSERT 0, DELETE 0
ICE054I 0 RECORDS - IN: 256374439, OUT: 256374439
ICE134I 0 NUMBER OF BYTES SORTED: 11024100877
ICE165I 0 TOTAL WORK DATA SET TRACKS ALLOCATED: 234930 , TRACKS USED: 234495
ICE199I 0 MEMORY OBJECT STORAGE USED = 0M BYTES
ICE180I 0 HIPERSPACE STORAGE USED = 0K BYTES
ICE188I 0 DATA SPACE STORAGE USED = 0K BYTES
ICE052I 0 END OF DFSORT
1ICE200I 0 IDENTIFIER FROM CALLING PROGRAM IS 0003
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 V1R5 - 03:58 ON FRI FEB 01, 2008 -
0 OPTION MAINSIZE=64M,DYNALLOC=(3390,20),NOOUTREL
ICE140I 0 END OF PARAMETERS FROM DFSPARM - SYSIN OR CTL3CNTL/PARAMETER LIST CONTROL STATEMENTS FOLLOW
OUTFIL FNAMES=OUTTABLE,
INCLUDE=(44,2,CH,EQ,C'22'),OUTREC=(1,43)
ICE146I 0 END OF STATEMENTS FROM CTL3CNTL - PARAMETER LIST STATEMENTS FOLLOW
DEBUG NOABEND,ESTAE
OPTION MSGDDN=DFSMSG,LIST,MSGPRT=ALL,RESINV=0,SORTDD=CTL3,SORTIN=TMP2,S*
ORTOUT=OUTTABLE,DYNALLOC,SZERO,EQUALS,NOVLSHRT,LOCALE=NO*
NE,NOCHECK
SORT FIELDS=(35,6,PD,A)
MODS E35=(ICE35DU,12288)
ICE201I E RECORD TYPE IS F - DATA STARTS IN POSITION 1
ICE751I 0 C5-K26318 C6-K90007 C7-K90000 C8-K23476 E4-K90007 C9-BASE E5-K24705 E6-K18181 C4-K24705 E7-K24705
ICE193I 0 ICEAM2 ENVIRONMENT IN EFFECT - ICEAM2 INSTALLATION MODULE SELECTED
ICE088I 1 QFPT4NC1.STEP01 .MERGE1 , INPUT LRECL = 45, BLKSIZE = 27990, TYPE = FB
ICE092I 0 MAIN STORAGE = (67108864,67108864,67108864)
ICE156I 0 MAIN STORAGE ABOVE 16MB = (66808403,66792019)
ICE127I 0 OPTIONS: OVFLO=RC0 ,PAD=RC0 ,TRUNC=RC0 ,SPANINC=RC16,VLSCMP=N,SZERO=Y,RESET=Y,VSAMEMT=Y,DYNSPC=32
ICE128I 0 OPTIONS: SIZE=67108864,MAXLIM=3145728,MINLIM=450560,EQUALS=Y,LIST=Y,ERET=RC16 ,MSGDDN=DFSMSG
ICE129I 0 OPTIONS: VIO=N,RESDNT=ALL ,SMF=FULL ,WRKSEC=Y,OUTSEC=Y,VERIFY=N,CHALT=N,DYNALOC=(3390 ,020),ABCODE=MSG
ICE130I 0 OPTIONS: RESALL=0,RESINV=0,SVC=109 ,CHECK=N,WRKREL=Y,OUTREL=N,CKPT=N,STIMER=Y,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=Y,TEXIT=Y,LISTX=N,EFS=NONE ,EXITCK=S,PARMDDN=DFSPARM ,FSZEST=N
ICE133I 0 OPTIONS: HIPRMAX=10 ,DSPSIZE=10 ,ODMAXBF=2097152,SOLRF=Y,VLLONG=N,VSAMIO=N,MOSIZE=MAX
ICE235I 0 OPTIONS: NULLOUT=RC0
ICE084I 0 EXCP ACCESS METHOD USED FOR TMP2
ICE750I 0 DC 11536918200 TC 0 CS DSVVV KSZ 11 VSZ 11
ICE752I 0 FSZ=256375960 RC IGN=0 E AVG=52 0 WSP=17315392 C DYN=313082 56636
ICE231I 0 STORAGE USED FOR OUTFIL : BELOW 16M = 22528, ABOVE 16M = 2126848
ICE210I 0 OUTTABLE : EXCP USED, LRECL = 43, BLKSIZE = 27993, TYPE = FB (SDB)
ICE751I 1 DE-K24705 D5-K24705 D3-K24705 D7-K24705 CB-K90000 E8-K24705
ICE096I 0 SUCCESSFUL RECOVERY FROM B37 ABEND(S) FOR WORK DATA SET(S)
ICE055I 0 INSERT 42306107, DELETE 42306107
ICE054I 0 RECORDS - IN: 256375160, OUT: 256375160
ICE227I 0 OUTTABLE : DELETED = 2357, REPORT = 0, DATA = 256372803
ICE228I 0 OUTTABLE : TOTAL IN = 256375160, TOTAL OUT = 256372803
ICE134I 0 NUMBER OF BYTES SORTED: 11536882200
ICE165I 0 TOTAL WORK DATA SET TRACKS ALLOCATED: 255825 , TRACKS USED: 254685
ICE199I 0 MEMORY OBJECT STORAGE USED = 0M BYTES
ICE180I 0 HIPERSPACE STORAGE USED = 0K BYTES
ICE188I 0 DATA SPACE STORAGE USED = 0K BYTES
ICE052I 0 END OF DFSORT
Back to top
krisprems Active Member Joined: 27 Nov 2006Posts: 649 Location: India
DFSMSG shows no errors...in terms of logic....
I could guess of a possibility, The dataset that you are using for TMP2 , are u using the same dataset for any other DD statement?
And also if you could simulate the run once, just remove the OUTREC statment in CTL3
Code:
OUTFIL FNAMES=OUTTABLE,
INCLUDE=(44,2,CH,EQ,C'22')
so that you can make out if the tag is being correctly changed or not!!
Note: if you remove the OUTREC from there the o/p file LRECL will be 45
Back to top
abhishekmdwivedi New User Joined: 22 Aug 2006Posts: 95 Location: india
Hi ,
I know my mistake is in the logic itself can you please give me a ICETOOL example on :
Quote:
Scenario :
Records from File-2 which are not present in File-1 are to be written into the output.
An example would be of great help.
Back to top
krisprems Active Member Joined: 27 Nov 2006Posts: 649 Location: India
Quote:
I know my mistake is in the logic itself can you please give me a ICETOOL example on :
Code:
//*******************************************************
//STEP001 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//IN1 DD *
61203000
61651000
82770000
53770000
/*
//IN2 DD *
09.11.1999 1488575300 05.10.1999 61203000
10.08.1999 2481921200 06.07.1999 61203000
13.10.1995 1746460000 18.02.1993 61651000
01.11.1993 1611422000 27.09.1993 82770000
01.11.1993 1612422000 27.09.1993 53770000
01.03.1995 490356300 14.02.1995 23691000
01.03.1995 490456300 14.02.1995 18651000
01.03.1995 491356300 14.02.1995 33691000
01.03.1995 491456300 10.11.1994 44081000
01.03.1995 492356300 14.02.1995 53691000
01.03.1995 492456300 14.02.1995 63651000
/*
//TMP1 DD DSN=&&TEMP1,DISP=(MOD,PASS),SPACE=(TRK,(5,5)),UNIT=SYSDA
//OUT DD SYSOUT=*
//TOOLIN DD *
COPY FROM(IN1) TO(TMP1) USING(CP01)
COPY FROM(IN2) TO(TMP1) USING(CP02)
SPLICE FROM(TMP1) TO(OUT) ON(35,6,CH) WITH(45,1) KEEPNODUPS-
USING(CP03) KEEPBASE WITHALL
/*
//CP01CNTL DD *
OUTREC FIELDS=(35:1,6,44:C'11')
SUM FIELDS=NONE
//CP02CNTL DD *
OUTREC FIELDS=(1:1,43,44:C'22')
//CP03CNTL DD *
OUTFIL FNAMES=OUT,INCLUDE=(44,2,CH,EQ,C'22')
OUT contains
Code:
01.03.1995 490456300 14.02.1995 18651000 22
01.03.1995 490356300 14.02.1995 23691000 22
01.03.1995 491356300 14.02.1995 33691000 22
01.03.1995 491456300 10.11.1994 44081000 22
01.03.1995 492356300 14.02.1995 53691000 22
01.03.1995 492456300 14.02.1995 63651000 22
Just try this, and u may get a hint of what is happening in your case!!
Back to top
abhishekmdwivedi New User Joined: 22 Aug 2006Posts: 95 Location: india
Hi,
The code given still generating duplicates for my files. What may be the reason for this?
Can u please explain terms 'KEEPNODUPS' and 'KEEPBASE'.
Back to top
krisprems Active Member Joined: 27 Nov 2006Posts: 649 Location: India
Quote:
The code given still generating duplicates for my files. What may be the reason for this?
The code which i have given? Sure?
Just Copy paste my code and try it as it is!!
KEEPNODUPS AND KEEPBASE
Back to top
abhishekmdwivedi New User Joined: 22 Aug 2006Posts: 95 Location: india
Yup.I have copy pasted it as it is but I am still having the same results as,
Code:
9.11.1999 1488575300 05.10.1999 61203000
09.11.1999 1488575300 05.10.1999 61203000
13.10.1995 1746460000 18.02.1993 61651000
01.11.1993 1611422000 27.09.1993 82770000
01.11.1993 1611422000 27.09.1993 82770000
01.03.1995 490356300 14.02.1995 23691000
01.03.1995 490356300 14.02.1995 23691000
01.03.1995 490356300 14.02.1995 23691000
01.03.1995 490356300 14.02.1995 23691000
01.03.1995 490356300 14.02.1995 23691000
Back to top
krisprems Active Member Joined: 27 Nov 2006Posts: 649 Location: India
I want to see your TOOLMSG
Code:
//TOOLMSG DD SYSOUT=*
, Please paste it!!
Back to top
abhishekmdwivedi New User Joined: 22 Aug 2006Posts: 95 Location: india
Here it is :
Code:
ICE630I 0 MODE IN EFFECT: STOP
COPY FROM(INDD1) TO(TMP1) USING(CP01)
ICE606I 0 DFSORT CALL 0001 FOR COPY FROM INDD1 TO TMP1 USING CP01CNTL COM
ICE602I 0 OPERATION RETURN CODE: 00
COPY FROM(INDD2) TO(TMP1) USING(CP02)
ICE606I 0 DFSORT CALL 0002 FOR COPY FROM INDD2 TO TMP1 USING CP02CNTL COM
ICE602I 0 OPERATION RETURN CODE: 00
SPLICE FROM(TMP1) TO(OUTDD1) ON(35,6,CH) WITH(45,1) KEEPNODUPS-
USING(CP03) KEEPBASE WITHALL
ICE606I 0 DFSORT CALL 0003 FOR SORT FROM TMP1 TO OUTDD1 USING CP03CNTL COM
ICE628I 0 RECORD COUNT: 000000256421396
ICE638I 0 NUMBER OF RECORDS RESULTING FROM CRITERIA: 000000256421396
ICE602I 0 OPERATION RETURN CODE: 00
Back to top
krisprems Active Member Joined: 27 Nov 2006Posts: 649 Location: India
abhishekmdwivedi
I want to see the last column in your o/p, like in my o/p you see 22 ,If you use the exact Cards that i have given you should be getting the last column as 11 OR 12 OR 22 !!
Back to top
abhishekmdwivedi New User Joined: 22 Aug 2006Posts: 95 Location: india
Sorry Kris but I am currently executing subseqent runs on the data with different options and hence overwritten the data.
Back to top
abhishekmdwivedi New User Joined: 22 Aug 2006Posts: 95 Location: india
Thanks for the information. It has been of great help. I will carry on from here to check where I am getting wrong.
Thanks a lot.
Back to top
Frank Yaeger DFSORT Developer Joined: 15 Feb 2005Posts: 7129 Location: San Jose, CA
Quote:
Hi Frank,
I have posted a topic here on forums with subject as "ICETOOL : Duplicates written into the output file on SPLICE." Krisprems had a look at it and given his inputs , which were very useful. Can you please have a look into it. It will be of great help. I am still in worries of why the code is not working for me.
Well, I was staying out of this since I didn't have time to read through all of the posts between you and Krisprems, but since you asked offline ...
Going back to your original two posts, it appears that you have file1 with a PD value in positions 1-6, and file2 (RECFM=FB and LRECL=43) with a PD value in positions 35-40, and you want the records in file2 that do not have a match in file1. Also, the output records from file2 have to be in their original order.
The following DFSORT/ICETOOL job gives me the output records you showed in your example with the input records you showed in your example:
Code:
//S1 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//IN1 DD DSN=... input file (FB/6)
//IN2 DD DSN=... input file (FB/43)
//T1 DD DSN=&&T1,UNIT=SYSDA,SPACE=(CYL,(5,5)),DISP=(MOD,PASS)
//T2 DD DSN=&&T2,UNIT=SYSDA,SPACE=(CYL,(5,5)),DISP=(,PASS)
//OUT DD DSN=... output file (FB/43)
//TOOLIN DD *
COPY FROM(IN1) TO(T1) USING(CTL1)
COPY FROM(IN2) TO(T1) USING(CTL2)
SPLICE FROM(T1) TO(T2) ON(35,6,PD) KEEPNODUPS KEEPBASE -
WITH(1,34) WITH(45,9) USING(CTL3)
SORT FROM(T2) TO(OUT) USING(CTL4)
/*
//CTL1CNTL DD *
INREC OVERLAY=(35:1,6,44:C'11',46:8X)
/*
//CTL2CNTL DD *
INREC BUILD=(1,43,44:C'22',46:SEQNUM,8,ZD)
/*
//CTL3CNTL DD *
OUTFIL FNAMES=T2,INCLUDE=(44,2,CH,EQ,C'22')
/*
//CTL4CNTL DD *
SORT FIELDS=(46,8,ZD,A)
OUTREC BUILD=(1,43)
/*
If this doesn't work for you, then contact me offline (yaeger@us.ibm.com) and I'll help you figure out why.
Back to top
krisprems Active Member Joined: 27 Nov 2006Posts: 649 Location: India
abhishekmdwivedi
even Frank can help you only if you provide the right control cards that you had used....
You said that you just copy pasted my ICETOOL job and ran but still getting the duplicates!!!
I can surely tell you that you hadnt copy pasted as it is...since the LRECL of the o/p from my JOB would be 45(inclluding the tag 11,12,22) but the o/p that you pasted dosnt show that!!!
I feel thats the Key place that you need to look into...
Back to top
abhishekmdwivedi New User Joined: 22 Aug 2006Posts: 95 Location: india
Thanks a lot Kris/Frank for your replies. The below code worked for me :
Code:
//TOOLIN DD *
COPY FROM(INDD1) TO(TMP1) USING(CP01)
COPY FROM(INDD2) TO(TMP1) USING(CP02)
SPLICE FROM(TMP1) TO(OUTDD1) ON(35,6,PD) WITH(11,6) WITH(35,6) -
WITH(45,1) KEEPNODUPS USING(CP03) KEEPBASE WITHALL
/*
//CP01CNTL DD *
SORT FIELDS=(1,6,PD,A)
OUTREC FIELDS=(35:1,6,44:C'11')
SUM FIELDS=NONE
/*
//CP02CNTL DD *
SORT FIELDS=(35,6,PD,A)
OUTREC FIELDS=(1:1,43,44:C'22')
/*
//CP03CNTL DD *
OUTFIL FNAMES=OUTDD1,INCLUDE=(44,2,CH,EQ,C'22'),OUTREC=(1,43)
Back to top
Please enable JavaScript!