GIVING 句を指定した場合には、ファイル名-1 の中のマージ済みの全レコードは自動的に出力ファイル (ファイル名-4) へ転送されます。 MERGE ステートメントの実行開始時には、ファイル名-4 によって参照されているファイルがオープンしていてはなりません。 ファイル名-4 によって参照されるファイルのおのおのに対して、MERGE ステートメントの実行時に次のような処置が取られます。
+----------------------------------IBM 拡張----------------------------------+
ファイル名-1 が 論理データベース・ファイルである場合には、レコードはファイルの終わりに追加されます。
+------------------------------End of IBM 拡張-------------------------------+
ファイル名-4 によって参照されるファイルが INDEXED ファイルである場合には、 このファイルに関連するキー・データ名が、マージ・ステートメント中に ASCENDING KEY 句をもっていなければなりません。 これと同じデータ名は、それのレコード内で、ファイルの基本レコード・キーに関連するデータ項目と同じ文字位置を占めていなければなりません。
相対ファイルの場合には、戻される最初のレコードについての相対キー・データ項目に値 '1' が入り、 戻される 2 番目のレコードについての相対キー・データ項目に値 '2' が入り、... というようになります。 MERGE ステートメントの実行後には、相対キー・データ項目の内容は、ファイルに戻された最後のレコードを示します。
これらの暗黙の機能は、関連する USE AFTER EXCEPTION/ERROR プロシージャーが実行されるように実行されます。 ただし、そのような USE プロシージャーの実行により、ファイル名-4 によって参照されているファイルを操作するか、 あるいはファイル名-4 に関連付けられているレコード域にアクセスするステートメントの実行が生じてはなりません。 このファイルの外部定義境界を超えてデータを書き込もうとする最初の試みが行われると、 このファイルについて指定されている USE AFTER STANDARD EXCEPTION/ERROR プロシージャーが実行されます。 この USE プロシージャーから制御が返された場合、あるいはこのような USE プロシージャーが指定されていない場合は、このファイルの処理が終了します。
出力ファイルは、データ部の FD 記入項目で記述されていなければなりません。 さらに、そのレコード記述は、マージ・ファイルについて記述されたレコードと同じサイズのレコードを記述するものでなければなりません。 これらのレコードを構成する基本項目が同じでない場合には、出力レコードは、マージ・レコードと同じ文字桁数をもっていなければなりません。
出力ファイルは、順次、相対、または索引編成でなければなりません。
出力ファイルは、キー順アクセス・パスなしで作成されたものでなければなりません。 そうでなければ、MERGE ステートメントは、データ記述仕様 (DDS) で指定された照合順序を指定変更することができません。
出力ファイル (ファイル名-4) に可変長レコードが含まれている場合には、 ファイル名-1 内のレコードのサイズは、出力ファイルについて記述されている最大レコードよりも小さくてはなりません。 出力ファイルに固定長レコードが含まれている場合には、 ファイル名-1 内のレコードのサイズは、出力ファイルについて記述されている最大レコードよりも大きくてはなりません。