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

How to SPLICE two records into a sigle record


IBM Mainframe Forums -> JCL & VSAM
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
ramsri

Active User


Joined: 18 Oct 2008
Posts: 380
Location: India

PostPosted: Tue Nov 18, 2008 9:24 pm
Reply with quote

Hi,

An input file has only two records.

Code:

COUNT-1 IS: 45
COUNT-2 IS: 10326


How to create a single record out of it as below:

Code:

COUNT-1 IS: 45 COUNT-2 IS: 10326


Please suggest.

Thanks.
Back to top
View user's profile Send private message
Arun Raj

Moderator


Joined: 17 Oct 2006
Posts: 2481
Location: @my desk

PostPosted: Tue Nov 18, 2008 10:10 pm
Reply with quote

ramsri,

What's the input/output RECFM/LRECL. Also the maximum possible length of the numeric field?
Back to top
View user's profile Send private message
ramsri

Active User


Joined: 18 Oct 2008
Posts: 380
Location: India

PostPosted: Tue Nov 18, 2008 10:18 pm
Reply with quote

Hi,

The input file RECFM=FB and LRECL is 80. Its max possible length is 11 digits.

Thanks.
Back to top
View user's profile Send private message
Frank Yaeger

DFSORT Developer


Joined: 15 Feb 2005
Posts: 7129
Location: San Jose, CA

PostPosted: Tue Nov 18, 2008 10:22 pm
Reply with quote

You can use a DFSORT/ICETOOL job like the following to do what you asked for:

Code:

//S1   EXEC  PGM=ICETOOL
//TOOLMSG   DD  SYSOUT=*
//DFSMSG    DD  SYSOUT=*
//IN DD *
COUNT-1 IS: 45
COUNT-2 IS: 10326
/*
//OUT DD SYSOUT=*
//TOOLIN DD *
SPLICE FROM(IN) TO(OUT) ON(8,1,CH) WITH(16,17) USING(CTL1)
/*
//CTL1CNTL DD *
  INREC IFTHEN=(WHEN=(6,2,CH,EQ,C'-2'),BUILD=(16:1,17,80:X))
/*
Back to top
View user's profile Send private message
Arun Raj

Moderator


Joined: 17 Oct 2006
Posts: 2481
Location: @my desk

PostPosted: Tue Nov 18, 2008 10:39 pm
Reply with quote

Code:
----+----+----+----+----+
COUNT-1 IS: 12345678901
COUNT-2 IS: 12345678901

ramsri,

As the numeric field length is 11, you might want to modify the control cards as below.
Code:
//TOOLIN DD *
  SPLICE FROM(IN) TO(OUT) ON(8,1,CH) WITH(25,23) USING(CTL1)
/*
//CTL1CNTL DD *
  INREC IFTHEN=(WHEN=(6,2,CH,EQ,C'-2'),BUILD=(25:1,23,80:X))
/*
Back to top
View user's profile Send private message
Frank Yaeger

DFSORT Developer


Joined: 15 Feb 2005
Posts: 7129
Location: San Jose, CA

PostPosted: Tue Nov 18, 2008 11:33 pm
Reply with quote

I was apparently working on my solution while ramsri was posting about the 11 digits and didn't see that post until now. (I hate when that happens.)
Back to top
View user's profile Send private message
ramsri

Active User


Joined: 18 Oct 2008
Posts: 380
Location: India

PostPosted: Wed Nov 19, 2008 8:59 am
Reply with quote

Frank & arcvns.

Thank you very much for your help.

icon_biggrin.gif
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 -> JCL & VSAM

 


Similar Topics
Topic Forum Replies
No new posts How to split large record length file... DFSORT/ICETOOL 7
No new posts SFTP Issue - destination file record ... All Other Mainframe Topics 2
No new posts FINDREP - Only first record from give... DFSORT/ICETOOL 3
No new posts Compare only first records of the fil... SYNCSORT 7
No new posts Pulling a fixed number of records fro... DB2 2
Search our Forums:

Back to Top