Join through splice
Posted: Fri Mar 05, 2010 6:50 pm
Hi,
I want to Join two files with some records from 1st and all from 2nd.i am using following JCL code
//SPLICE EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//IN1 DD DSN=A70528.SAMPLE,DISP=SHR
//IN2 DD DSN=A70528.SAMPLE1,DISP=SHR
//*IN1 DD DSN=A70528.SAMPLE3,DISP=SHR
//*IN2 DD DSN=A70528.SAMPLE4,DISP=SHR
//T1 DD DSN=A70528.SAMPLE5,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(1,1),RLSE),
// DCB=(RECFM=FB,LRECL=26,BLKSIZE=0,DSORG=PS)
//T2 DD DSN=A70528.SAMPLE6,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(1,1),RLSE),
// DCB=(RECFM=FB,LRECL=26,BLKSIZE=0,DSORG=PS)
//TEMP2 DD SYSOUT=*
//CONCAT DD DSN=*.T1,VOL=REF=*.T1,DISP=(OLD,PASS)
// DD DSN=*.T2,VOL=REF=*.T2,DISP=(OLD,PASS)
//T3 DD DSN=A70528.JOIN.SPLICE.TEST,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(1,1),RLSE),
// DCB=(RECFM=FB,LRECL=26,BLKSIZE=0,DSORG=PS)
//*DSN=E001.COLONIAL.CIF.NOREL.RPT,DISP=SHR
//TOOLIN DD *
COPY FROM(IN1) TO(T1) USING(CTL1)
COPY FROM(IN2) TO(T2) USING(CTL2)
SPLICE FROM(CONCAT) TO(T3) ON(1,4,CH) -
WITHALL WITH(16,10) USING(CTL3)
/*
//CTL1CNTL DD *
SORT FIELDS=COPY
OUTREC FIELDS=(1,15,16:10C' ',26:C'A')
/*
//CTL2CNTL DD *
OUTREC FIELDS=(1,4,5:11C' ',5,10,26:C'B')
/*
//CTL3CNTL DD *
OUTFIL FNAMES=T3,
OUTREC=(1,26)
/*
//
input file a70528.sample is
1111 pardeep
2222 mittal
3333 naveen
4444 sachin
6666 rahul
input file a70528.sample is
1111 abcd
2222 xyz
2222 ksdf
3333 ksdfjh
5555 testone
Output by using above jcl is:
1111 pardeep abcd A
2222 mittal xyz A
2222 mittal ksdf A
3333 naveen ksdfjh A
means it is giving only matched records only but i want unmatched records from sample1 also.Please tell me a way to do it....
I want to Join two files with some records from 1st and all from 2nd.i am using following JCL code
//SPLICE EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//IN1 DD DSN=A70528.SAMPLE,DISP=SHR
//IN2 DD DSN=A70528.SAMPLE1,DISP=SHR
//*IN1 DD DSN=A70528.SAMPLE3,DISP=SHR
//*IN2 DD DSN=A70528.SAMPLE4,DISP=SHR
//T1 DD DSN=A70528.SAMPLE5,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(1,1),RLSE),
// DCB=(RECFM=FB,LRECL=26,BLKSIZE=0,DSORG=PS)
//T2 DD DSN=A70528.SAMPLE6,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(1,1),RLSE),
// DCB=(RECFM=FB,LRECL=26,BLKSIZE=0,DSORG=PS)
//TEMP2 DD SYSOUT=*
//CONCAT DD DSN=*.T1,VOL=REF=*.T1,DISP=(OLD,PASS)
// DD DSN=*.T2,VOL=REF=*.T2,DISP=(OLD,PASS)
//T3 DD DSN=A70528.JOIN.SPLICE.TEST,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(1,1),RLSE),
// DCB=(RECFM=FB,LRECL=26,BLKSIZE=0,DSORG=PS)
//*DSN=E001.COLONIAL.CIF.NOREL.RPT,DISP=SHR
//TOOLIN DD *
COPY FROM(IN1) TO(T1) USING(CTL1)
COPY FROM(IN2) TO(T2) USING(CTL2)
SPLICE FROM(CONCAT) TO(T3) ON(1,4,CH) -
WITHALL WITH(16,10) USING(CTL3)
/*
//CTL1CNTL DD *
SORT FIELDS=COPY
OUTREC FIELDS=(1,15,16:10C' ',26:C'A')
/*
//CTL2CNTL DD *
OUTREC FIELDS=(1,4,5:11C' ',5,10,26:C'B')
/*
//CTL3CNTL DD *
OUTFIL FNAMES=T3,
OUTREC=(1,26)
/*
//
input file a70528.sample is
1111 pardeep
2222 mittal
3333 naveen
4444 sachin
6666 rahul
input file a70528.sample is
1111 abcd
2222 xyz
2222 ksdf
3333 ksdfjh
5555 testone
Output by using above jcl is:
1111 pardeep abcd A
2222 mittal xyz A
2222 mittal ksdf A
3333 naveen ksdfjh A
means it is giving only matched records only but i want unmatched records from sample1 also.Please tell me a way to do it....