COBOL Redefining Variable with Same Length Example
Scenario - Redefining Variable with Same Length
Code -
----+----1----+----2----+----3----+----4----+----5----+
       IDENTIFICATION DIVISION.
       PROGRAM-ID. REDEFSAM.
       AUTHOR. MTH.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 WS-VAR.
          05 WS-VAR1                       PIC X(20). 
      * Redefining variable with the same length
          05 WS-REQ-VAR1 REDEFINES WS-VAR1 PIC X(20). 
       PROCEDURE DIVISION.
           MOVE "MAINFRAME TECHNOLOGY"     TO WS-VAR1.
           DISPLAY "WS-VAR1:       " WS-VAR1. 
           DISPLAY "WS-REQ-VAR1:   " WS-REQ-VAR1. 
           DISPLAY " ". 
           MOVE "MAINFRAME APPLICATION SYSTEM" TO WS-REQ-VAR1.
           DISPLAY "WS-VAR1:       " WS-VAR1.
           DISPLAY "WS-REQ-VAR1:   " WS-REQ-VAR1.
           STOP RUN.Output -
WS-VAR1: MAINFRAME TECHNOLOGY WS-REQ-VAR1: MAINFRAME TECHNOLOGY WS-VAR1: MAINFRAME APPLICATIO WS-REQ-VAR1: MAINFRAME APPLICATIO
Explaining Example -
In the above example:
- WS-VAR1 is the source variable. WS-REQ-VAR1 is the target variables on WS-VAR1.
- WS-REQ-VAR1 redefines WS-VAR1 with the same length of 20. So, WS-RLE-VAR1 and WS-VAR1 can have the same data.
- Initially, WS-VAR1 was assigned with "MAINFRAME TECHNOLOGY" and the redefined variable WS-REQ-VAR1 also had the same data.
- Later, the "MAINFRAME APPLICATION SYSTEM" was assigned to WS-REQ-VAR1. WS-VAR1 can access the same memory location of WS-VAR1. So it also has the same data.
