The MERGE statement combines two or more identically sequenced files (that is, files that have already been sorted according to an identical set of ascending/descending keys) on one or more keys and makes records available in merged order to an output procedure or output file.
A MERGE statement may appear anywhere in the Procedure Division except in a Declarative Section. The maximum number of USING or GIVING files is 32.
+-------------------------------IBM Extension--------------------------------+
It is not necessary to sequence input files prior to a merge operation.
+----------------------------End of IBM Extension----------------------------+
MERGE Statement -- Format
>>-MERGE--file-name-1------------------------------------------->
.--------------------------------------------------.
| .-------------. |
V V | |
>----+----+--+-ASCENDING--+--+-----+----data-name-1-+-+--------->
'-ON-' '-DESCENDING-' '-KEY-'
>--+------------------------------------------------+----------->
'-+-----------+--SEQUENCE--+----+--alphabet-name-'
'-COLLATING-' '-IS-'
.-------------.
V |
>--USING--file-name-2----file-name-3-+-------------------------->
>--+-| OUTPUT PROCEDURE Phrase |-+-----------------------------><
| .-------------. |
| V | |
'-GIVING----file-name-4-+-----'
OUTPUT PROCEDURE Phrase:
|--OUTPUT PROCEDURE--+----+--procedure-name-1------------------->
'-IS-'
>--+-------------------------------+----------------------------|
'-+-THROUGH-+--procedure-name-2-'
'-THRU----'
No file-name may be repeated in the MERGE statement.
Do not specify a pair of file names in the MERGE statement that already share storage through a SAME AREA, SAME SORT AREA, or SAME SORT-MERGE AREA clause. However, you may specify file names in the MERGE statement that share the SAME RECORD AREA clause if they are also associated with the GIVING clause (file-name-4).
When the MERGE statement is executed, all records contained in file-name-2, file-name-3,... are accepted by the merge program and then merged according to the key(s) specified.
Null-capable fields are supported,
but null values are only supported for DATABASE files that have ALWNULL specified on their ASSIGN clause.
Related Information:
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.