今回は、内部テーブルについてです。
内部テーブルとは、プログラム内にて宣言するデータの一時保持用テーブルです。
Select命令でDBから取得したデータを一括して保持することが可能で、
ABAPプログラムは、この内部テーブルを中心にプログラムを
組み上げて行くといっても過言ではないほど、利用されます。
内部テーブルの宣言は・・・
DATA itab TYPE (STANDARD) TABLE OF mara.
これで、「mara」という標準テーブルと同じ構造の内部テーブル「itab」が
使用可能になります。
「mara」の部分は、ディクショナリに登録されているテーブル、構造や
命令「Types」で宣言したローカル構造を指定します。
(STANDARD) の部分は、内部テーブルのタイプを示します。
タイプは3つあります。
Standard:スタンダードテーブル
省略した場合は、スタンダードテーブルになります。
個人的には、必ず明示するようにしています
Sorted:ソートテーブル
内部テーブルの宣言と同時に、キー指定が必要です。
キーは非一意も可能です。
指定したキーで常に昇順ソートされてデータが保持されます。
Hashed:ハッシュテーブル
内部テーブルの宣言と同時に、キー指定が必要です。
キーは一意でなければなりません。
ハッシュ関数によるランダムアクセスが可能になります。
通常、スタンダードテーブルが利用されることが多いですが、
ソートテーブルやハッシュテーブルを意識して使ってみるのも
面白いと思います。
