krisprems
Active Member
Joined: 27 Nov 2006 Posts: 649 Location: India
|
|
|
|
Hi
My requirement is some what similar to the one in Sort trick pdf, In which it attempts to join 2 files horizontally.
In my case i need to Join 12 files side by side.
Initially i tried same with 3 files
CODE is as follows:
Code: |
//*******************************************************
//STEP001 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//IN1 DD *
001 AAAAA
002 CCCCC
003 EEEEE
004 GGGGG
/*
//IN2 DD *
003 DDDDD
004 FFFFF
005 HHHHH
/*
//IN3 DD *
003 BBBBB
003 DDDDD
003 HHHHH
/*
//TMP1 DD DSN=&&TEMP1,DISP=(MOD,PASS),SPACE=(TRK,(5,5)),UNIT=SYSDA
//OUT DD SYSOUT=*
//TOOLIN DD *
COPY FROM(IN1) TO(TMP1) USING(CPY1)
COPY FROM(IN2) TO(TMP1) USING(CPY2)
COPY FROM(IN3) TO(TMP1) USING(CPY3)
SPLICE FROM(TMP1) TO(OUT) ON(36,8,PD) -
WITHEACH WITH(10,9) WITH(19,9) USING(CPY4)
/*
//CPY1CNTL DD *
OUTREC FIELDS=(1:1,9,36:SEQNUM,8,PD)
/*
//CPY2CNTL DD *
OUTREC FIELDS=(10:1,9,36:SEQNUM,8,PD)
/*
//CPY3CNTL DD *
OUTREC FIELDS=(19:1,9,36:SEQNUM,8,PD)
/*
//CPY4CNTL DD *
OUTFIL FNAMES=OUT,OUTREC=(1,35)
/*
|
The O/P is
Code: |
001 AAAAA003 DDDDD003 BBBBB
002 CCCCC004 FFFFF003 DDDDD
003 EEEEE005 HHHHH003 HHHHH
|
And the expected o/p is
Code: |
001 AAAAA003 DDDDD003 BBBBB
002 CCCCC004 FFFFF003 DDDDD
003 EEEEE005 HHHHH003 HHHHH
004 GGGGG
|
Meant to say that, the code is not working as expected wn i/p contains different number of records.
How do i get this ? |
|
Frank Yaeger
DFSORT Developer
Joined: 15 Feb 2005 Posts: 7129 Location: San Jose, CA
|
|
|
|
For the example you show, adding KEEPNODUPS to the SPLICE operator will give you what you asked for, e.g.
Code: |
SPLICE FROM(TMP1) TO(OUT) ON(36,8,PD) KEEPNODUPS -
WITHEACH WITH(10,9) WITH(19,9) USING(CPY4)
|
|
|