ABAP/レンジテーブル のバックアップ(No.1)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- ABAP/レンジテーブル へ行く。
- 1 (2014-06-26 (木) 11:02:47)
例えばL_R_KUNNR TYPE RANGE OF KUNNRのように宣言して使用する内部テーブル。 ここでは「一般的な内部テーブル」との違いに着目して言及したい。
仕様 †
まず、このテーブルの仕様を解説する。
- 型が規定されている
SIGN、OPTION、LOW、HIGHという4つの項目が固定となる。
- SIGN IncludeとExcludeの何れかを指定して使用する。 それぞれ包含か除外かを意味するが、通常はパフォーマンス上の問題からIを使用する。
- OPTION EQ(等しい)、BT(範囲)、GT(以上)、LT(以下)などを指定する。 こちらも、パフォーマンス上の問題からEQとBTのみが使われることが多い。
- LOWとHIGH 上記の例ではKUNNRなど、この項目が宣言した型の影響を受ける。 単一指定で比較する場合のEQなど通常はLOW項目、OPTIONでBTを使用する場合はHIGHも併用する。
- SELECT文の検索条件にそのまま利用可能 上記の例では、WHERE句で「WHERE KUNNR IN L_R_KUNNR」のように、そのまま指定可能となる。 但し、ABAPのSELECT文はDBに渡された時に分解されるという動きとなる。 これは、内容がI BT 00001 99999つまり1から99999を抽出するとしたならば、1から99999までを個別のOR判定に分解するという動きとなる。 この時、分解されたSELECT命令が一定の長さ(3000行だっけか?)を超過するとショートダンプが起きるため、使用には注意したい。
コメントはありません。 Comments/ABAP/レンジテーブル