RETURN(引き取り)文

RETURN(引き取り)文は、整列処理の最後の段階から整列済みのレコードを引き取るか、または併合処理中に併合済みのレコードを引き取る。

一般形式

構文規則

  1. ファイル名は、データ部の中の整列併合ファイル記述項に記述しておく。

  2. RETURN文を使用できるのは、ファイル名を対象とするSORT文またはMERGE文に関連する、出力手続きの範囲内だけである。

  3. 入力ファイルのレコード記述に大きさの異なる論理レコードが含まれているときは、INTO指定をしてはならない。一意名のデータ領域とファイル名のレコード領域が、同じ記憶領域を指していてはならない。

  4. 一意名-1は、浮動小数点数項目であってもよい。

一般規則

  1. 1つのファイルに論理レコードのレコード記述がいくつもある場合、これらのレコードは自動的に同じ記憶領域を共有する。これは、暗黙的にレコードを再定義することと同じである。現在のデータ・レコードの範囲を超えるデータ項目は、RETURN文の実行が終了した時点でその内容は、どうなっているかわからない。

  2. RETURN文の実行が終了すると、ファイル名のファイル中に存在する次のレコードが、そのレコード領域において利用可能とされる。このレコードの順序は、SORT文またはMERGE文中に指定されているキーによって決定される。ファイル名のファイル中に次の論理レコードが存在しないとファイル終了条件が発生し、AT END指定の無条件文-1に制御が移される。この場合、無条件文-1の中の各文に関する規則に従って、処理は続行される。その中で、制御を明示的に移行する手続きの分岐または条件文が実行された場合は、その文に関する規則に従って制御が移される。 そうでなければ、無条件文-1の実行が終了した時点で、制御はRETURN文の末尾に移される。

    この場合、NOT AT END指定があっても、無視される。

    ファイル終了条件が発生すると、RETURN文の実行は不成功に終わり、ファイル名のレコード領域の内容はどうなるかわからない。AT END指定中の無条件文-1の実行が終了した後では、現在の出力手続きの一環としてそれ以上RETURN文を実行することはできない。

  3. RETURN文の実行中にファイル終了条件が発生しなかった場合、レコードが利用可能にされる。次いでINTO指定に基づく暗黙の転記が行われた後で、無条件文-2を指定してあれば、制御はそちらに移される。無条件文-2を指定してなければ、制御はRETURN文の末尾に移される。

  4. END-RETURN指定は、RETURN文の範囲を区切る。

  5. 下記のどちらかの場合は、RETURN文中にINTO指定を含めることができる。

    • 整列併合ファイル記述のもとに、レコードが1件だけ記述されている。

    • ファイル名のファイルのすべてのレコードおよび一意名のデータ項目が、集団項目または基本英数字項目である。

  6. INTO指定を伴うRETURN文を実行した結果は、下記の規則を順に適用することと同じである。

    1. INTO指定を伴わない同じ内容のRETURN文を実行する。

    2. 現在のレコード領域の内容を、一意名のデータ領域に転記する。転記の仕方はCORRESPONDING指定のないMOVE文の規則に従う。現在のレコードの大きさは、RECORD句の指定によって決まる。ファイル記述項にRECORD IS VARYING句が指定してある場合は、暗黙的に集団項目転記が行われるが、この転記は不成功に終わる。一意名に添字付けがされていれば、レコードが読み出された後、一意名のデータ項目に転記される直前に評価される。レコード領域および一意名-1のデータ項目の、 両方のデータが利用できる。