テーブルデータ型
テーブルデータ型は、ABAP における内部テーブルの構造と機能属性を示します。このトピックでは、テーブルデータ型を取り上げて、その構成や種類などを説明します。
構成
行データ型
通常、内部テーブルのデータ型は構造であり、その構造の各コンポーネントは、それぞれ内部テーブル内の1つの列になります。 ただし、内部テーブルのデータ型の仕様としては、構造以外の任意のデータ型を使用することも可能です。
キー
テーブル行データはキーによって識別されます。キーは、システムからデフォルトで生成されるは標準キーのほかに、ユーザから定義することもできます。ユーザ定義キーはUNIQUE または NON-UNIQUE として指定することができます。
アクセス方法
内部テーブルのアクセス方法は以下三つの種類から指定できます。
- 標準テーブル
標準テーブルは内部的な線型索引を持ちます。
索引を使用して個別のテーブルエントリをアドレス指定する予定がある場合には、これが最適なデータ型です。 - ソートテーブル
ソートテーブルは常にキー別にソートされ、保存されます。ソートテーブルも内部索引を持ちます。
バイナリ検索が求められる場合には、これが最適なデータ型です。 - ハッシュテーブル
ハッシュテーブルは線型索引を持ちません。キーを使用した場合にのみハッシュテーブルにアクセスすることができます。
ハッシュ検索が求められる場合には、これが最適なデータ型です。
分類
完全指定のテーブルデータ型
内部テーブルのアクセス方法が明示されたテーブルデータ型です。
- STANDARD TABLE または TABLE
標準テーブルを登録します。 - SORTED TABLE
ソートテーブルを登録します。 - HASHED TABLE
ハッシュテーブルを登録します。
ジェネリックテーブルデータ型
内部テーブルのアクセス方法が明示されたテーブルデータ型です。
- INDEX TABLE
索引アクセスを使用するジェネリックテーブルデータ型を登録します。 - ANY TABLE
完全なジェネリックテーブルデータ型を登録します。
ジェネリックテーブルデータ型は動的なプログラミングでよく使用されます。
定義
テーブルデータ型は、ローカルまたはグローバルに定義することができます。
ローカル定義
プログラムの中でTYPE命令を使用してテーブルデータ型をローカルに定義することができます。 構文:
TYPES type TYPE|LIKE tabkind OF linetype [WITH key] [INITIAL SIZE n].