SAPABAP-内部テーブル

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

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

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

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

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

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

  • これらは、プログラムの後半で使用できる計算結果を保持するために使用できます。

  • 内部テーブルはレコードとデータを保持することもできるため、データベーステーブルからこのデータにアクセスする必要はなく、すばやくアクセスできます。

  • それらは非常に用途が広いです。それらは、他の定義された構造をいくつでも使用して定義できます。

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