| IBM MAINFRAME HELP & SUPPORT FORUMS Technical Forums for IBM Mainframe Applications like COBOL, JCL, CICS, DB2, FileAid, DFSORT, Endevor, Xpediter, CoolGen, CA-7&11, AbendAid, IMS, IDMS, PL/I, MqSeries, SyncSort, Assembler, ChangeMan, Easytrieve, InterTest, REXX, CLIST etc...
|
| View previous topic :: View next topic |
| Author |
Message |
Prabha
Joined: 05 Dec 2005
Posts: 64
|
| Posted: Wed Dec 07, 2005 4:03 pm Post subject: How to update a particular record |
|
|
Hi,
I have an input file with some set of records like,
A/C no CUSTNAME ADDRESS1 ADDRESS2
--------- ------------- ------------- -------------
12937487 GUPTA AAAAAAAA BBBBBBBB
83737366 JOHN CCCCCCC DDDDDDD
23345556 JUDE EEEEEEEEE GGGGGGG
Here i want to update the third record JUDE. Kindly Provide me with example of code for this. |
|
| Back to top |
|
Prabha
Joined: 05 Dec 2005
Posts: 64
|
| Posted: Thu Dec 08, 2005 11:00 am Post subject: Re: How to update a particular record |
|
|
I hav one more clarification. In yr code
"EXECIO 1 DISKRU IN 3"
You have given updated line number as 3. Suppose 10000 records, in that case I dont know abt the line number of that record to be updated. How to specify the line number in such situation. |
|
| Back to top |
|
Ravi gaur
Joined: 12 Jul 2005
Posts: 44
|
| Posted: Thu Dec 08, 2005 5:15 pm Post subject: Re: How to update a particular record |
|
|
use this code :- but remember i m parsing input data using position Please change the position(1,9,10 etc etc) if you get any problem please let me know the position for the input data.
Code:
/* REXX */
"ALLOC DA('SF0619.TEST3') FILE(INP) SHR"
"ALLOC DA('SF0619.TEST5') FILE(OUT) SHR"
"EXECIO * DISKR INP (STEM INP. FINIS"
J=0
DO I=1 TO INP.0
PARSE VAR INP.I 1 VAR1 9 10 VAR2 18 19 VAR3 35 .
J=J+1
IF LEFT(VAR2,4)='JUDE' THEN
DO
VAR2=RAVI
VAR.J=' 'VAR1||' 'VAR2||' 'VAR3
END
ELSE
VAR.J=' 'VAR1||' 'VAR2||' 'VAR3
END
"EXECIO * DISKW OUT (STEM VAR."
"FREE F(INP OUT)"
DROP VAR.
|
|
| Back to top |
|
Prabha
Joined: 05 Dec 2005
Posts: 64
|
| Posted: Fri Dec 09, 2005 11:32 am Post subject: Re: How to update a particular record |
|
|
Your code is doing updated fields in another output file. But i need to update in same file itself.
Thanks a lot for yr code. |
|
| Back to top |
|
MichaelKBS
Joined: 10 Jan 2006
Posts: 21
Location: Germany
|
| Posted: Tue Jan 10, 2006 6:27 pm Post subject: |
|
|
Try the following method:
do forever
"execio" 1 "diskru filename"
/* ask for End-Of-File */
if rc = 2 then do
leave
end
parse pull record
field1 = subword(record,1,1)
if field1 = 'AAAAAAA' then do
field1 = 'BBBBBBB'
record = field1!!subword(record,2)
queue record
"execio 1 diskw filename"
end
end
Regards,
Michael |
|
| Back to top |
|
| |
THIS IS AN ARCIVE FORUM IN READ ONLY MODE. IF YOU WANT TO ASK YOUR DOUBTS USE THE ACTUAL FORUM
|