WORKING-STORAGE SECTION is a section within the DATA DIVISION of a COBOL program that defines temporary variables and data items used during program execution. It provides a place to declare variables, constants, and data structures that are needed throughout the program but are not part of file records.
WORKING-STORAGE SECTION syntax and usage patterns for different data definition scenarios.
123456789101112131415IDENTIFICATION DIVISION. PROGRAM-ID. WORKING-STORAGE-EXAMPLE. DATA DIVISION. WORKING-STORAGE SECTION. 01 COUNTER PIC 9(3) VALUE 0. 01 TOTAL-AMOUNT PIC 9(8)V99 VALUE 0.00. 01 CUSTOMER-NAME PIC X(30) VALUE SPACES. 01 PROCESSING-FLAG PIC X VALUE "N". PROCEDURE DIVISION. DISPLAY "Counter: " COUNTER DISPLAY "Total Amount: " TOTAL-AMOUNT DISPLAY "Customer Name: " CUSTOMER-NAME DISPLAY "Processing Flag: " PROCESSING-FLAG STOP RUN.
Basic WORKING-STORAGE SECTION with various data types and initialization.
1234567891011121314151617181920IDENTIFICATION DIVISION. PROGRAM-ID. WORKING-STORAGE-GROUP. DATA DIVISION. WORKING-STORAGE SECTION. 01 CUSTOMER-RECORD. 05 CUSTOMER-ID PIC 9(6) VALUE 0. 05 CUSTOMER-NAME PIC X(30) VALUE SPACES. 05 CUSTOMER-STATUS PIC X(1) VALUE "A". 05 CUSTOMER-BALANCE PIC 9(8)V99 VALUE 0.00. 01 PROCESSING-STATS. 05 RECORDS-PROCESSED PIC 9(6) VALUE 0. 05 RECORDS-ERROR PIC 9(6) VALUE 0. 05 TOTAL-AMOUNT PIC 9(10)V99 VALUE 0.00. PROCEDURE DIVISION. DISPLAY "Customer ID: " CUSTOMER-ID DISPLAY "Customer Name: " CUSTOMER-NAME DISPLAY "Records Processed: " RECORDS-PROCESSED STOP RUN.
WORKING-STORAGE SECTION with group items for structured data organization.
12345678910111213141516171819202122IDENTIFICATION DIVISION. PROGRAM-ID. WORKING-STORAGE-ARRAY. DATA DIVISION. WORKING-STORAGE SECTION. 01 MONTHLY-TOTALS. 05 MONTH-AMOUNT PIC 9(8)V99 OCCURS 12 TIMES. 01 PROCESSING-ARRAYS. 05 TEMP-VALUES PIC 9(3) OCCURS 10 TIMES VALUE 0. 05 STATUS-FLAGS PIC X OCCURS 5 TIMES VALUE "N". 01 COUNTERS. 05 ARRAY-INDEX PIC 9(2) VALUE 1. 05 LOOP-COUNT PIC 9(3) VALUE 0. PROCEDURE DIVISION. PERFORM VARYING ARRAY-INDEX FROM 1 TO 10 MOVE ARRAY-INDEX TO TEMP-VALUES(ARRAY-INDEX) END-PERFORM DISPLAY "Array processing completed" STOP RUN.
WORKING-STORAGE SECTION with arrays and tables using OCCURS clause.
Integer and decimal numeric data items.
12301 COUNTER PIC 9(3) VALUE 0. 01 AMOUNT PIC 9(8)V99 VALUE 0.00. 01 PERCENTAGE PIC 9(3)V99 VALUE 0.00.
Text and character data items.
12301 NAME PIC X(30) VALUE SPACES. 01 DESCRIPTION PIC X(100) VALUE SPACES. 01 CODE PIC X(5) VALUE "00000".
Structured data items with multiple fields.
123401 RECORD-ITEM. 05 ID PIC 9(6) VALUE 0. 05 NAME PIC X(30) VALUE SPACES. 05 STATUS PIC X(1) VALUE "A".
Tables and arrays using OCCURS clause.
123401 ARRAY-DATA. 05 ELEMENT PIC 9(3) OCCURS 10 TIMES. 01 TABLE-DATA. 05 ROW PIC X(20) OCCURS 5 TIMES.
Data Type | Syntax | Use Case |
---|---|---|
Numeric | PIC 9(n) VALUE number | Counters, amounts, calculations |
Alphanumeric | PIC X(n) VALUE "text" | Names, descriptions, codes |
Group | 01 group-name. 05 field-name | Structured data, records |
Array | PIC type OCCURS n TIMES | Tables, lists, collections |
1. What is the primary purpose of WORKING-STORAGE SECTION in COBOL?
2. Where is WORKING-STORAGE SECTION located in a COBOL program?
3. What happens to WORKING-STORAGE variables when the program starts?
4. Which of the following can be defined in WORKING-STORAGE SECTION?
5. How do you initialize a variable in WORKING-STORAGE SECTION?