View previous topic :: View next topic
|
Author |
Message |
kishpra
New User
Joined: 24 May 2010 Posts: 92 Location: Pune
|
|
|
|
Hi All,
I have used ICETOOL to merge the files data.
Code: |
S29TL EXEC PGM=ICETOOL,COND=(8,LE)
TOOLMSG DD SYSOUT=*
DFSMSG DD SYSOUT=*
IN1 DD DSN=WLB.TEST.EJR.AIH.OUTPUT.O3,DISP=SHR
IN2 DD DSN=WLB.TEST.ACQ.AIH.OUTPUT.O3,DISP=SHR
IN3 DD DSN=WLB.TEST.SAC.AIH.OUTPUT.O3,DISP=SHR
OUT DD DSN=WLB.TEST.OUTPUT,DISP=(MOD,CATLG,DELETE),
TOOLIN DD *
COPY FROM(IN1) TO(OUT) USING(CTL1)
COPY FROM(IN2) TO(OUT) USING(CTL1)
COPY FROM(IN3) TO(OUT) USING(CTL1)
CTL1CNTL DD *
OPTION COPY
/* |
The output file has the below data with HEX ON:
Code: |
wase.20150802.dat|20110802|3596808
AA888A84FFFFFFFF488A4FFFFFFFF4FFFFFFF4
3633125B20150802B413F20150802F35968080
--------------------------------------
watt.20150802.dat|20110802|2903 ,
A8A8AA4FFFFFFFF488A4FFFFFFFF4FFFF44440
346133B20150802B413F20150802F290300000
--------------------------------------
wsac.20150802.dat|20110802|5898213
AA88A884FFFFFFFF488A4FFFFFFFF4FFFFFFF4
3633213B20150802B413F20150802F58982130 |
The second row has the pipe delimiter which is one space to the left as compared to first and third record. So the second record is getting some hex '00' value at last.
Please elt me know how to squeeze the data or to have X(40) in the second record at last.
Thank you.
Code'd |
|
Back to top |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
In a SORT/ICETOOL context, MERGE has a specific meaning, and it is not what you think it is.
You want to concatenate your data. You have chosen a strange way. A simple SORT with a COPY operation will do you, with the three datasets concatenated on the SORTIN DD... if, that is, the datasets are the same RECFM (yes, they are) and LRECL (unclear).
What is the LRECL of your three input datasets and your output dataset? |
|
Back to top |
|
|
kishpra
New User
Joined: 24 May 2010 Posts: 92 Location: Pune
|
|
|
|
LRECL for firs and second dataset is 38 and second is 37. |
|
Back to top |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
Code: |
TOOLIN DD *
COPY FROM(IN1) TO(OUT)
COPY FROM(IN2) TO(OUT) USING(CTL1)
COPY FROM(IN3) TO(OUT)
CTL1CNTL DD *
INREC OVERLAY=(38:X) |
You don't need a USING if you are doing nothing other than what the ICETOOL operator is doing.
For your short records, you need to make them longer. So you use a USING and in that USING set column 38 to blank. |
|
Back to top |
|
|
|