💻 COBOL
COBOL MERGE Statement
Advanced 🕑 10 min read
👁 0 views
COBOL MERGE Statement
The MERGE statement combines two or more sorted files into one sorted file.
Syntax
MERGE merge-file
ON ASCENDING/DESCENDING KEY key-1 [key-2 ...]
USING file-1 file-2 [file-3 ...]
GIVING output-file
Example Program
IDENTIFICATION DIVISION.
PROGRAM-ID. MERGE-DEMO.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT FILE-A ASSIGN TO 'FILEA.DAT'.
SELECT FILE-B ASSIGN TO 'FILEB.DAT'.
SELECT OUTPUT-FILE ASSIGN TO 'MERGED.DAT'.
SELECT MERGE-FILE ASSIGN TO 'MERGEWORK'.
DATA DIVISION.
FILE SECTION.
FD FILE-A.
01 REC-A.
05 A-KEY PIC 9(5).
05 A-DATA PIC X(45).
FD FILE-B.
01 REC-B.
05 B-KEY PIC 9(5).
05 B-DATA PIC X(45).
FD OUTPUT-FILE.
01 OUTPUT-REC PIC X(50).
SD MERGE-FILE.
01 MERGE-REC.
05 MERGE-KEY PIC 9(5).
05 MERGE-DATA PIC X(45).
PROCEDURE DIVISION.
* Both input files must already be sorted on MERGE-KEY
MERGE MERGE-FILE
ON ASCENDING KEY MERGE-KEY
USING FILE-A FILE-B
GIVING OUTPUT-FILE
DISPLAY 'Merge completed successfully'
STOP RUN.
Expected Output
Merge completed successfully
Input Files (Already Sorted)
FILE-A:
00001Record A1
00003Record A2
00005Record A3
FILE-B:
00002Record B1
00004Record B2
00006Record B3
Output File (Merged)
00001Record A1
00002Record B1
00003Record A2
00004Record B2
00005Record A3
00006Record B3
Key Points
- Input files MUST be pre-sorted
- SD defines merge work area
- Can merge more than 2 files
- OUTPUT PROCEDURE can process merged records
- Maintains order with DUPLICATES IN ORDER