Sap-abap-internal-tables

提供:Dev Guides
移動先:案内検索

SAP ABAP-内部テーブル

内部テーブルは実際には一時テーブルであり、実行中のABAPプログラムのレコードが含まれています。 内部テーブルは、SAPプログラムの実行時にのみ存在します。 これらは、ABAP言語を使用して大量のデータを処理するために使用されます。 データベーステーブルからデータを取得する必要がある場合は、ABAPプログラムで内部テーブルを宣言する必要があります。

内部テーブルのデータは行と列に保存されます。 各行は line と呼ばれ、各列は field と呼ばれます。 内部テーブルでは、すべてのレコードは同じ構造とキーを持っています。 内部テーブルの個々のレコードには、インデックスまたはキーを使用してアクセスします。 関連するプログラムが実行されるまで内部テーブルが存在するため、プログラムの実行が終了すると内部テーブルのレコードは破棄されます。 したがって、内部テーブルは、必要に応じてデータを変更できる一時記憶領域または一時バッファとして使用できます。 これらのテーブルは実行時にのみメモリを占有し、宣言時にはメモリを占有しません。

内部テーブルはプログラムの実行中にのみ存在するため、コードを記述するときは、プログラムが使用できるように内部テーブルを構成する必要があります。 内部テーブルは構造と同じように動作することがわかります。 主な違いは、構造には1行しかないのに対して、内部テーブルには必要な数の行を含めることができることです。

内部テーブルは、ABAPディクショナリのように複数のフィールドを使用してテーブルが作成されたように、テーブルの列に対応する複数のフィールドで構成できます。 キーフィールドは内部テーブルでも使用でき、これらの内部テーブルを作成する際、柔軟性がわずかに向上します。 内部テーブルでは、一意でないキーを指定して、任意の数の一意でないレコードを保存し、必要に応じて重複するレコードを保存できます。

内部テーブルのサイズまたはそれに含まれる行数は固定されていません。 内部テーブルのサイズは、内部テーブルに関連付けられたプログラムの要件に従って変化します。 ただし、内部テーブルをできるだけ小さくすることをお勧めします。 これは、膨大な量のデータの処理に苦労するため、システムの実行速度が低下するのを防ぐためです。

内部テーブルは多くの目的に使用されます-

  • これらは、後でプログラムで使用できる計算結果を保持するために使用できます。
  • 内部テーブルにはレコードやデータも保持できるため、データベーステーブルからこのデータにアクセスするのではなく、迅速にアクセスできます。
  • 彼らは非常に汎用性があります。 他の定義された構造をいくつでも使用して定義できます。

ユーザーが1つまたは複数の大きなテーブルからさまざまな顧客の連絡先番号のリストを作成するとします。 ユーザーはまず内部テーブルを作成し、顧客テーブルから関連データを選択してから、内部テーブルにデータを配置します。 他のユーザーは、プログラムの実行中に各操作を実行するためのデータベースクエリを作成する代わりに、この内部テーブルに直接アクセスして目的の情報を取得できます。