!--a11y-->

READ 命令で、索引を使用してテーブル内の行を読み込むことができます。索引テーブルの単一の行を読み込むには、以下の命令を使用します。
READ TABLE <itab> INDEX <idx> <result>.
テーブル <itab> から索引<idx> を持つ行が読み込まれます。この操作では、キーを使用して検索するよりも処理が速くなります。<result> 部で、取得された行の追加処理オプションを指定することができます。
指定した索引を持つエントリが検出された場合は、システム項目 SY-SUBRC が 0 に設定され、SY-TABIX にその行の索引が格納されます。検出されない場合は、SY-SUBRC は 0 以外の値に設定されます。
<idx> が 0 より小さいかまたは等しい場合は、実行時エラーが発生します。<idx> がテーブルの行の数より大きい場合は、SY-SUBRC が 4 に設定されます。

DATA: BEGIN OF LINE,
COL1 TYPE I,
COL2 TYPE I,
END OF
LINE.
DATA ITAB LIKE SORTED TABLE OF LINE WITH UNIQUE KEY COL1.
FIELD-SYMBOLS <FS> LIKE LINE OF ITAB.
DO 20
TIMES.
LINE-COL1 = SY-INDEX.
LINE-COL2 = 2 * SY-INDEX.
APPEND LINE TO ITAB.
ENDDO.
READ TABLE ITAB ASSIGNING <FS> INDEX 7.
WRITE:
SY-SUBRC, SY-TABIX.
WRITE: / <FS>-COL1,
<FS>-COL2.
出力は以下のようになります。
0
7
7 14
この例では、ソートテーブル ITAB が作成され 20 行が書き込まれます。索引 7 を持つ行が読み込まれ、フィールドシンボル <FS> に割り当てられます。