MERGE(併合)文は,指定したキーの組に従って同じにそろえられたレコードをもつ二つ以上のファイルを併合する.
また,処理中併合した順序でレコードを出力手続き又は出力ファイルに移す.
【書き方】
(1) |
MERGE文(併合)は,宣言部分を除く手続き部のどこに現れてもよい. |
|||||||||||||||
(2) |
ファイル名-1は,データ部の整列併合用ファイル記述項で定義しておかなければならない. |
|||||||||||||||
(3) |
ファイル名-1のファイルが固定長レコードを含むときは,ファイル名-2及びファイル名-3のファイルに含まれるレコードの大きさは,ファイル名-1に対して記述した最大レコードより大きくてはならない. |
|||||||||||||||
(4) |
ファイル名-1,ファイル名-2,ファイル名-3及びファイル名-4のレコード記述の中にCHARACTER TYPE句の指定されたデータ記述項があってはならない. |
|||||||||||||||
(5) |
データ名-1は,キー項目であり,次の制限に従わなければならない.
|
|||||||||||||||
(6) |
ファイル名-2,ファイル名-3及びファイル名-4は,データ部中の整列併合用ファイル記述項以外のファイル記述項に記述しなければならない. |
|||||||||||||||
(7) |
一つのMERGE文で指定した二つのファイルが,同一の複数ファイルリール上にあってはならない. |
|||||||||||||||
(8) |
一つのMERGE文に,同じファイル名を2回以上書いてはならない. |
|||||||||||||||
(9) |
MERGE文中のファイル名の組合せを,同じSAME AREA句,SAME SORT AREA句又はSAME SORT-MERGE AREA句に指定してはならない.同じSAME RECORD AREA句に指定可能なMERGE文のファイル名は,GIVING指定に関連するファイル名だけとする. |
|||||||||||||||
(10) |
THRUとTHROUGHは同義語であり,どちらを書いてもよい. |
|||||||||||||||
(11) |
ファイル名-4のファイルが固定長レコードを含むときは,ファイル名-1のファイルに含まれるレコードの大きさは,ファイル名-4に対して記述した最大レコードより大きくてはならない. |
|||||||||||||||
(12) |
符号系名-1は,環境部の特殊名段落でNATIVEに対応付けられたものでなければならない. |
|||||||||||||||
(13) |
ファイル名-2,ファイル名-3及びファイル名-4は,大記憶装置の順ファイルでなければならない. |
(1) | MERGE文は,ファイル名-2及びファイル名-3のファイルに含まれるすべてのレコードを併合する. |
||||||
(2) | ファイル名-1のファイルが固定長レコードだけを含むときは,その固定長よりも少ない文字位置を含むファイル名-2又はファイル名-3のファイル中のレコードは,そのレコードをファイル名-1のファイルに引き渡すとき,そのレコードの最後の文字の後の最初の文字位置から始まる右側を空白で満たされる. |
||||||
(3) | KEYに続くデータ名は,KEY指定での区切り方とは関係なく,強さの順に左から右へ並べる.
|
||||||
(4) | 比較条件中の各作用対象の比較に対する規則に従い,一つのデータレコードのすべてのキー項目の内容が,一つ以上の他のデータレコードの対応するキー項目の内容と等しいとき,次の順序で引き取る.
|
||||||
(5) | 文字のキー項目の比較に適用する文字の大小順序は,MERGE文の実行開始時,次の優先順位に従う.
|
||||||
(6) | ファイル名-2,ファイル名-3のファイル上のレコードが,MERGE文のASCENDING KEY指定又はDESCENDING KEY指定で書かれたとおりに並んでいなければ,併合操作の結果は規定しない. |
||||||
(7) | ファイル名-2及びファイル名-3のファイル中のすべてのレコードは,ファイル名-1のファイルに移される.MERGE文の実行時,ファイル名-2及びファイル名-3のファイルは,開いた状態であってはならない.ファイル名-2及びファイル名-3の各ファイルに対して,MERGE文の実行によって次の動作がなされる.
|
||||||
(8) | 出力手続きは,ファイル名-1のファイルから併合された順にRETURN文によって一時に一つだけ使用可能とされるレコードを選択し,修正し,複写するのに,必要とされる手続きから構成されることができる.出力手続き中のCALL文,EXIT文,GO TO文及びPERFORM文によって制御が移行した結果として実行されるすべての文,及び出力手続きの範囲中の文の実行の結果として実行される宣言手続き中のすべての文を,出力手続きの範囲に含む.出力手続きの範囲は,MERGE文,RELEASE文又はSORT文の実行を引き起こしてはならない. |
||||||
(9) | 出力手続きを指定すると,MERGE文の実行中,出力手続きに制御が移る.コンパイラは,出力手続きの最後の節の終わりに復帰機構を挿入する.出力手続きの最後の文を実行し終わると,復帰機構によってMERGE文の次の実行文に制御が移る.出力手続きに制御が移ったときには,レコードは完全に整列されていて,RETURN文によって順番に引き取れるようになる. |
||||||
(10) | 出力手続きの実行中に,ファイル名-2若しくはファイル-3のファイルを操作する文又はファイル名-2若しくはファイル名-3に関係付けられたレコード領域を呼び出す文を実行してはならない.MERGE文を実行している間に暗に呼び出されるUSE AFTER STANDARD EXCEPTION手続きの実行中に,ファイル名-2,ファイル名-3若しくはファイル名-4のファイルを操作する文又はファイル名-2,ファイル名-3若しくはファイル名-4に関係付けられたレコード領域を呼び出す文を実行してはならない. |
||||||
(11) | GIVING指定を記述すると,MERGE文に対して出力手続きを指定したのと同じように,併合されたすべてのレコードが,ファイル名-4のファイルに書かれる.MERGE文の実行開始時,ファイル名-4のファイルは,開いた状態であってはならない.ファイル名-4の各ファイルに対して,MERGE文の実行によって次の動作がなされる.
これらの暗黙の機能により,それらに関連するUSE AFTER STANDARD EXCEPTION手続きがあれば実行させる.しかし,そのようなUSE手続きの実行が,ファイル名-4のファイルを操作する文又はファイル名-4に関係付けられたレコード領域を呼び出す文を実行させてはならない.ファイルの外部で定義された区域を超えて最初に書き出そうとした場合,そのファイルに対して指定されたUSE AFTER STANDARD EXCEPTION手続きが実行され,そのUSE手続きから制御が戻るか又はそのようなUSE手続きが指定されていなければ,選択指定なしのCLOSE文を実行したかのようにそのファイルの終了処理を行う. |
||||||
(12) | ファイル名-4のファイルが固定長レコードだけを含むときは,その固定長よりも少ない文字位置を含むファイル名-1のファイル中のレコードは,そのレコードがファイル名-4のファイルに引き取られるとき,そのレコードの最後の文字の後の最初の文字位置から始まる右側を空白で満たされる. |