順呼び出しの場合、READ(読み込み)文はファイルから次
 
 論理レコードを利用できるようにする。乱呼び出しの場合、READ文は大記憶ファイルから指定されたレコードを利用できるようにする。
一般形式 
 形式 1 (レコード順編成ファイル) 
形式 2 (行順編成ファイル) 
形式 3 (相対ファイルおよび索引ファイル) 
形式 4 (相対ファイル) 
 形式 5 (索引ファイル) 
予約語リストにフラグを付けたり修正したりするコンパイラ指令に加えて、下記の指令によって、この項に記述した構文または意味が影響を受ける可能性がある。
RETRYLOCK - ロックされているレコードの読み込みを再試行させる。 
 
 
下記のランタイム スイッチによって、この項に記述した意味が影響を受ける可能性がある。
B, B1  - READ NEXT文を実行中にロックされたレコードが出てくると、それを飛ばすようにレコード ポインターを更新させる。
 
N  - 行順レコードを読むときに、制御文字の前の空文字の解釈を制御する。
 
T  - 行順レコードを書くときに、タブ文字の解釈を制御する。  
 
構文規則 
すべての形式 (すべてのファイル) 
入力ファイルの論理レコードが可変長のとき、INTO指定を使用してはならない。
 
一意名のデータの記憶領域とファイル名のレコードの記憶領域とが、同じ記憶領域を指してはならない。
 
 
 
ファイル名に適用できるUSE手続きを設定していない場合には、INVALID KEY指定またはAT END指定を書く。
 
  
 
形式 1、3、4 および 5 (レコード順編成ファイル、相対ファイル、索引ファイル) 
 
 
  
 
形式 3 (相対ファイルおよび索引ファイル) 
 
を指定する。
 
 
形式 3、4 および 5 (相対ファイルおよび索引ファイル) 
  
 
形式 4 および 5 (相対ファイルおよび索引ファイル) 
 
 
形式 5 (索引ファイル) 
データ名 
 
   は、ファイル名のファイルのレコードキーとして指定したデータ項目の名前とする。
 
 
 
データ名 
 
   は、修飾してもよい。
 
  
 
一般規則 
すべての形式 (すべてのファイル) 
手続き部 - MERGE - OPEN OPEN(開く)文OPEN(開く)文   節を参照。)
 
手続き部 入出力状態 
 
1つのファイルの論理レコードが複数のレコード記述によって定義されている場合、それらのレコードは自動的に同じ記憶領域を共有する。これはレコード領域を暗黙的に再定義することに相当する。現在のレコード領域の範囲を超えてデータ項目が存在する場合、READ文の実行が終了したときにその内容はどうなっているかわからない。
 
INTOを指定すると、読み込まれたレコードは、レコード領域から一意名に指定した領域へ転記される。その際、CORRESPONDING指定のないMOVE文に関する規則が適用される。READ文の実行が不成功であったときは、この暗黙的な転記は行われない。一意名に添字付けまたは指標付けがなされている場合、レコードが読み込まれてからその一意名のデータ項目に転記される直前に評価される。
 
INTOを指定すると、読み込まれたレコードは、入力レコード領域でも一意名のデータ領域でも利用可能となる。
 
ファイル位置指示子が次の論理レコードが存在しないことを示しているか、または不定入力ファイルが存在しない場合、下記の処理が順に行われる。
ファイル位置指示子の内容に応じた値が、ファイル名-1に対応する入出力状態に設定される。 (手続き部 入出力状態  
 
AT END指定をしてあると、制御は無条件文-1に移される。この場合、ファイル名-1のファイル結合子に対応するUSE AFTER EXCEPTION手続きが設定してあっても実行されない。その後、無条件文-1の中の各文に関する規則に従って、処理は続行される。その中で、制御の明示をもたらす分岐文または条件文が実行された場合は、その文に関する規則に従って制御が移される。そうでなければ、無条件文-1の実行が終了した時点で、制御はREAD文の末尾に移される。この場合、NOT AT END指定があっても、無視される。
 
 
AT END指定をしていない場合、ファイル名-1に対応するUSE AFTER STANDARD EXCEPTION手続きを設定する必要がある。この場合、そのUSE手続きが実行される。その実行が終了すると、READ文の末尾の次の実行文に制御が戻される。
 
 
 
 
 READ文の実行が不成功に終わった後では、対応するレコード領域の内容はどうなっているかわからない。また、ファイル位置指示子は、次のレコードが存在しないことを示すように設定される。 
 
形式 1 (レコード順編成ファイル) 
READ文によって利用可能となるレコードは、下記のように決定される。
 
 
 
 
 
 
 
READ文の実行中にリールまたはユニットの終わりが検出されたが、まだファイルの終わりには達していない場合、下記の手続きが実行される。
標準終了リール/ユニット ラベル手続き
 
 
リール/ユニットの交換
 
 
標準開始了リール/ユニット ラベル手続き
 
 
新しいリール/ユニットの最初のデータ レコードの読み込み 
 
 
環境部 ファイル管理段落ファイル管理段落  節、手続き部 - MERGE - OPEN OPEN(開く)文 手続き部 - SEARCH - XML PARSE USE(使用)文 ファイル管理段落 
 
 
 
 
 
 
ファイルにLOCK MODE IS AUTOMATICが指定してあると、READ文にWITH NO LOCKを指定しないかぎり読み込まれた各レコードはロックされる。
 
ファイルにLOCK MODE IS MANUALが指定してあると、READ文ではレコード ロックを得ることはできない。レコード ロックを得るためには、READ WITH LOCK文を使用する。READ文にWITH NO LOCKを指定しても、注記になる。
 
レコード ロックがいつ解除されるかは、単一のレコードをロックしたか複数のレコードをロックしたかによって異なる。 (環境部 ファイル管理記述項ファイル管理段落  節を参照。) 
 
 
  
 
 形式 1、2 および 3 (順編成ファイル、相対ファイル、および索引ファイル) 
READ文の実行中にAT END条件が発生しなかった場合、AT END指定をしてあっても無視されて、以下の処理が行われる。
ファイル位置指示子が設定されて、ファイル名-1に対応する入出力状態が更新される。
 
  
ファイル終了条件以外の例外条件が発生していると、ファイル名-1に適用できるUSE AFTER EXCEPTION手続きが指定してあればそれが実行されて、その後でUSE文の規則に従って制御が移される。(手続き部 - SEARCH - XML PARSE USE(使用)文  
  
例外条件が何も発生していなければ、読み込み対象レコードがレコード領域中で利用できるようにされる。また、INTOを指定してあれば、暗黙の転記処理が行われる。その後で、制御はREAD文の末尾に移される。ただし、NOT AT END指定をしてあれば、制御は無条件文-2に移される。この場合、無条件文-2の中の個々の文に関する規則に従って、以降の処理が続行される。制御の明示移行をもたらす分岐文または条件文が実行された場合は、その文に関する規則に従って制御が移される。制御の明示移行をもたらす分岐文または条件文が実行されなかった場合は、無条件文-2の実行が終わると、制御はREAD文の末尾に移される。  
 
  
NEXT指定をしたREAD文を実行したときに、対象ファイル中に次の論理レコードが存在しないと、AT END条件が発生しREAD文の実行は不成功に終わったものとみなされる。(手続き部 入出力状態 
  
 
順呼び出し法で呼び出すファイルに関しては、NEXT指定は書いても書かなくてもよい。READ文の実行には影響を及ぼさない。. 
  
 
形式 3 (相対ファイルおよび索引ファイル) 
 
 
  
 
  
AT END条件が検出された場合、前の論理レコードが存在しないため、
 形式  3 のREAD文を実行するならば、NEXTを指定する。そうでなければ、
下記の処理を続ける。
該当するファイルに対してCLOSE文を実行し、次いでOPEN文を実行する。いずれも正常に終了しなければならない。
 
  
そのファイルに対してSTART文を実行する。正常に終了しなければならない。
 
  
そのファイルに対して、形式 4(相対ファイル)または形式 5(索引ファイル)のREAD文を実行する。 
 
  
動的呼び出し法を指定したファイルに関して、NEXT指定をしたREAD文を実行すると、
 
 次の論理レコードが取り出される。
  
READ文によって利用可能となるレコードは、下記の規則に従って決定される。
 START文またはOPEN文の実行によってファイル位置指示子が設定されていて、ファイル位置指示子によって指されるレコードの呼び出しができる場合は、そのレコードが利用可能にされる。相対ファイルのレコードを削除したり索引ファイルの副レコードキーを変更したりすることによって、レコードが呼び出しできる状態になった場合は、参照キーによって確立されている呼び出し経路中の次のレコードを指すように、ファイル位置指示子が更新される。
 
前のレコードを指すように、ファイル位置指示子が更新される。そして、ファイル位置指示子によって指されるレコードが利用可能にされる。
  
前のREAD文の実行によってファイル位置指示子が設定された場合、ファイル位置指示子はファイル中に存在する次のレコードを指すように更新される。
 
 
  
   
 
形式 1、3、4 および 5 (順編成ファイル、相対ファイル、索引ファイル) 
 
 
 
 
  
 
形式 3 (相対ファイル) 
RELATIVE KEYを指定したファイルに対してREAD文を実行すると、利用可能にされたレコードの相対レコード番号が、RELATIVE KEYデータ項目に収められる。 
 
形式 4 (相対ファイル) 
READ文を実行すると、ファイルのRELATIVE KEYに指定したデータ項目中に保持されている相対レコード番号がファイル位置指示子に設定され、そのレコードが利用可能にされる。ファイル中にその相対レコード番号のレコードが存在しない場合は、無効キー条件が発生し、READ文の実行は不成功に終わる。(手続き部 無効キー条件   
 
形式 3 および 5 (相対ファイルおよび索引ファイル) 
  
 
形式 3 (索引ファイル) 
索引ファイルを順呼び出しする場合、検索のキーとしている副レコードキーに値が同じものがあると、これらはWRITE文またはREWRITE文によって書き出された順に利用可能にされる。 
 
形式 5 (索引ファイル) 
形式  3 のREAD文を実行するときにも、この検索キーが使用される。
  
 
がその参照キーとして使用される。動的呼び出しを指定すると、後に形式 3のREAD文を実行するときにも、この検索キーが使用される。ただし、別の参照キーを指定すると、今度はそれが使用されるようになる。
  
 形式 5のREAD文を実行すると、参照キーの値がファイル中のレコードの対応するデータ項目に格納されている値と順次比較されて、両者の値が最初に一致するものが見つけ出される。ファイル位置指示子がそのレコードを指すように設定されて、そのレコードが利用可能とされる。両者の値が一致するレコードが見つからないと、無効キー条件が発生し、READ文の実行は不成功に終わる。(手続き部 無効キー条件