今回も内部テーブルについてです。
内部テーブルのレコードの追加・更新・読み込みには、決まった方法があります。
● データベースから取得したレコードをまとめて格納
Ø Select文で取得したレコードを直接格納
例)Data: itab Type Standard Table of mara.
Select *
Into Table itab
From mara.
● 内部テーブルのレコードを読み込む
Ø Read 命令による1レコード読み込み
² 必ず作業領域を使用する
例)Data: itab Type Standard Table of mara.
Data: ist Like line of itab.
Select *
Into Table itab
From mara.
Read Table itab Into ist index 1.
Ø Loop命令による順次読み込み
² 必ず作業領域を使用する
例)Data: itab Type Standard Table of mara.
Data: ist Like line of itab.
Select *
Into Table itab
From mara.
Loop At itab Into ist.
(処理)
Endloop.
● データベースから取得した1レコードを最終行に追加
Ø Append命令で追加
² 必ず作業領域(ヘッダ)が必要
例)Data: itab Type Standard Table of mara.
Data: ist Like line of itab.
Select *
Into ist
From mara.
Where Matnr = ‘a’
Appned ist to itab.
● データベースから取得した内部テーブルの値を更新
Ø Modify 命令で更新
² 必ず作業領域を使用する
例)Data: itab Type Standard Table of mara.
Data: ist Like line of itab.
Select *
Into Table itab
From mara.
Loop At itab Into ist.
ist-zitem = ‘X’.
Modify Table itab From ist.
Endloop.
内部テーブルのレコード操作の基本は、以上です。
例 からわかるとおり、内部テーブルのレコードを操作するためには、基本的に、
作業領域に読み込み→値を編集→内部テーブルに反映のステップが必要です。
