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