Summary -
In this topic, we described about the OUTREC Extending with OVERLAY with detailed example.
OVERLAY parameter can be used to extend your output record without affecting the rest of the record.
Syntax -
OPTION COPY OUTREC OVERLAY=(Extending position of field1 in o/p file, Starting position of field1 in i/p file, Length of field1,overlay operation,…)
Name | Description |
---|---|
Extending position of field1 in o/p file | Specifies field1 extending position in the output file after sorting. |
Starting position of field1 in i/p file | Specifies field1 starting position in the input file after sorting. |
Length of feild1 | Field1 physical length in input file. |
Overlay operation | Specifies the overlay operation |
Note! The OVERLAY parameter of the OUTREC statement can be used to overlay specified columns with reformatting items, without affecting the rest of your reformatted record.
All of these reformatting features can be used with the OVERLAY parameter of the INREC statement and OUTFIL statement, as well as with the OUTREC statement.
All of these reformatting features can be used with the OVERLAY parameter of the INREC statement and OUTFIL statement, as well as with the OUTREC statement.
Example -
Overlay dept with DEPT in all rows and multiply marks with 10 and place the result from 85th position (extending the record length to 88).
Input File: MTHUSER.SORT.INPUT01 - FB file of 80 length
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 ********************************* Top of Data ********************************** 00001 student1 dept1 560 00003 student3 dept2 520 00004 student4 dept1 540 00005 student5 dept2 500 00002 student2 dept3 510 ******************************** Bottom of Data ********************************
Job:
000100 //Jobcard 000400 //* 000500 //********************************************************************** 000600 //* 000700 //* SORT FOR OUTREC STATEMENT 000800 //* 000900 //********************************************************************** 001100 //STEP01 EXEC PGM=SORT 001300 //SORTIN DD DSN=MTHUSER.SORT.INPUT01,DISP=SHR 001800 //SORTOUT DD SYSOUT=* 001900 //SYSOUT DD SYSOUT=* 002400 //SYSIN DD * 002411 OPTION COPY 002420 OUTREC OVERLAY=(30:30,4,TRAN=LTOU, 002430 85:45,3,ZD,MUL,+10,TO=ZD,LENGTH=4) 003500 /* ****** **************************** Bottom of Data ****************************
Output:
-----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+--- ********************************* TOP OF DATA ******************************************* 00001 student1 DEPT1 560 5600 00003 student3 DEPT2 520 5200 00004 student4 DEPT1 540 5400 00005 student5 DEPT2 500 5000 00002 student2 DEPT3 510 5100 ******************************** BOTTOM OF DATA ******************************** *********
Explaining Solution:
- OUTREC OVERLAY=(30:30,4,TRAN=LTOU,..) - Converts the data lower to upper from 30th position of length 4 and writes to output from 30th position.
- OUTREC OVERLAY=(..,85:45,3,ZD,MUL,+10,TO=ZD,LENGTH=4) - the data from 45th byte multiplies with 10 and writes the result to output of the length 4 from 85th position.
Note! The OVERLAY parameter of the OUTREC statement can be used to overlay specified columns with reformatting items, without affecting the rest of your reformatted record.
All of these reformatting features can be used with the OVERLAY parameter of the INREC statement and OUTFIL statement, as well as with the OUTREC statement.
All of these reformatting features can be used with the OVERLAY parameter of the INREC statement and OUTFIL statement, as well as with the OUTREC statement.