【ABAP】1分で理解できる!DESCRIBE TABLE命令

ABAP

本ページでは、ABAPにおける内部テーブルの属性を読み込む命令―。「DESCRIBE TABLE」について解説します。

DESCRIBE TABLEをあまり見かけない方もいらっしゃるかもしれませんが、実は1つのプログラムで1回ぐらいはよく使われている命令です。

このページで学べる内容

  • DESCRIBE TABLE命令とは?使い方と意味
  • LINESオプションの使い方
  • OCCURSオプションの使い方
  • KINDオプションの使い方
  • DESCRIBE TABLE命令の使いどころと使用例

ABAPerであれば、知っておいて損はない知識ばかりですので、是非最後までご覧ください。

スポンサーリンク
スポンサーリンク

DESCRIBE TABLE命令とは?

DESCRIBE TABLE命令は、指定した内部テーブルの属性を読み取る命令です。(この命令では、内部テーブルの操作を行ったりレコードの追加・変更等は行いません。)

読み取りたい内部テーブルの属性に応じて3つのオプションがあり、オプションなしではDESCRIBE TABLE命令を利用することはできません。必ず、以下いずれかのオプションを指定する必要があります。

DESCRIBE TABLE命令の3つのオプション

  • LINESオプション
  • OCCURSオプション
  • KINDオプション

それでは、DESCRIBE TABLE命令の構文ルールとオプションの利用方法を合わせて解説します。

【LINES】DESCRIBE TABLE

DESCRIBE TABLE (内部テーブル) LINES (変数).


LINESオプションを利用すると、内部テーブルの行数を判別することができます。判別した行数については、LINESオプションの後に指定した変数に格納されます。

LINESオプションの後に指定する変数には、整数しか入りませんのでデータ型は「i(整数)」でなければなりません。

※ABAPデータ型については、こちらのページで詳しく解説しております。不安な方は合わせてご覧ください。

もし、以下の内部テーブル「ITAB1」に対して、 DESCRIBE TABLE命令を用いた場合、変数「Z_i」には「」が格納されることになります。


DESCRIBE TABLE ITBA1 LINES Z-i.

blank

LINESオプションが最も利用頻度が高いです。MESSAGE命令を用いて、処理成功件数を画面表示したい場合などに用いる場合が多いです。

【OCCURS】DESCRIBE TABLE

DESCRIBE TABLE (内部テーブル) OCCURS (変数).


OCCURSオプションでは、内部テーブルの初期メモリ所要量(INITIAL SIZE)を判別することができます。

初期メモリ所要量とは、内部テーブルを宣言したタイミングで自動的に与えられるメモリサイズのことです。通常のプログラムであれば、この初期メモリ所要量を気にしなければいけないタイミングが(ほぼ)ないため、OCCURSオプションを用いたDESCRIBE TABLE命令を見かけることはまずありません

OCCURSオプションの後に指定する変数は、LINESオプションと同様データ型「i(整数)」でなければなりません。

【KIND】DESCRIBE TABLE

DESCRIBE TABLE (内部テーブル) KIND (変数).


KINDオプションは、指定した内部テーブルのテーブルタイプを判別することができます。KINDオプションの後に指定した変数には、テーブルタイプに応じて以下のいずれかの文字が格納されます。

  • 標準テーブルの場合「T
  • ハッシュテーブルの場合「H
  • ソートテーブルの場合「S

そのため、KINDオプションの後に指定した変数のデータ型は「c(文字)」でなければなりません。

※ハッシュテーブル/ソートテーブルという単語にピンとこない方はこちらのページをご覧ください。

ABAPを1から勉強したい方は・・・

ABAPを勉強中の方は、合わせてこちらのページも是非ご覧ください。

こちらのページでは、簡単な機能であればABAPを用いたプログラミング開発ができるようにすることを目的として、本サイト内で解説しているABAP関連の記事をまとめています。

ABAPを学習中の人であれば、必ず役に立つ内容ばかりですので是非ご覧ください。

タイトルとURLをコピーしました