全体に関わる操作

 

このトピックでは内部テーブル全体に対する操作を取り上げて説明します。

内部テーブルの割り当ては、MOVE命令を使用します。 MOVE itab1 TO itab2. なお、代入演算子も同様の働きを持ちます。 itab2 = itab1.

上記の命令が実行された結果、内部テーブルitab1の内容が内部テーブルitab2にコピーされることになります。

内部テーブルを初期化するには、clear、fresh、freeなどの命令を使用します。

  • clear
    • 構文1:clear itab[]
      内部テーブルの本体を初期化します。
      内部テーブルは初期メモリ所要量が予約され、その以外のメモリ領域がすべて解放されます。
    • 構文2:clear itab
      ヘッダ行を含まない内部テーブルの場合は、この命令はclear itab[]と同様に動作します。
      ヘッダ行を含る内部テーブルの場合は、ヘッダ行(作業領域)の名前が内部テーブルと同じであるため、このテーブルは単なるヘッダ行のクリアのみとなります。
  • fresh
    • 構文:fresh itab
      常に内部テーブルの本体を初期化します。この命令はclear itab[]と同様に動作します。
  • free
    • 構文:fresh itab
      常に内部テーブルの本体を初期化します。この命令はclear、fresh命令と異なり、内部テーブルに対して、初期メモリ所要量を含めた記憶域全体をすべて解放します。

ABAPでは、内部テーブルも論理式内のオペランドとして比較することができます。

内部テーブルのソートはSORT命令を使用します。

SORT itab [ASCENDING|DESCENDING] [AS text] [STABLE].

DESCRIBE TABLE命令を使用して、件数などの内部テーブルの各属性を取得することができます。

  • DESCRIBE TABLE
    構文:DESCRIBE TABLE itab [LINES lin] [OCCURS n] [KIND knd].
    • パラメータ:LINES
      内部テーブルのレコード件数を取得します。
    • パラメータ:OCCURS
      内部テーブルの初期サイズを取得します。
    • パラメータ:KIND
      内部テーブルの種類を取得します。