例えばL_R_KUNNR TYPE RANGE OF KUNNRのように宣言して使用する[[内部テーブル>ABAP/内部テーブル]]。
ここでは「一般的な内部テーブル」との違いに着目して言及したい。
* 仕様 [#w121dc81]
まず、このテーブルの仕様を解説する。
-型が規定されている
** 型が規定されている [#ifef29df]
SIGN、OPTION、LOW、HIGHという4つの項目が固定となる。
--SIGN
-SIGN
''I''ncludeと''E''xcludeの何れかを指定して使用する。
それぞれ包含か除外かを意味するが、通常はパフォーマンス上の問題からIを使用する。
--OPTION
それぞれ包含か除外かを意味するが、通常はパフォーマンス上の問題からIを使用することが多い。
-OPTION
''EQ''(等しい)、''BT''(範囲)、''GT''(以上)、''LT''(以下)などを指定する。
こちらも、パフォーマンス上の問題からEQとBTのみが使われることが多い。
--LOWとHIGH
こちらも、パフォーマンス上の問題からEQとBTが使われることが多い。
一定の数値や金額以上を抽出する要件が少ないことも一因。
-LOWとHIGH
上記の例ではKUNNRなど、この項目が宣言した型の影響を受ける。
単一指定で比較する場合のEQなど通常はLOW項目、OPTIONでBTを使用する場合はHIGHも併用する。
-[[SELECT>ABAP/SELECT]]文の検索条件にそのまま利用可能
** [[SELECT>ABAP/SELECT]]文の検索条件にそのまま利用可能 [#q00e2845]
上記の例では、WHERE句で「WHERE KUNNR IN L_R_KUNNR」のように、そのまま指定可能となる。
但し、ABAPの[[SELECT>ABAP/SELECT]]文はDBに渡された時に''分解される''という動きとなる。
これは、内容が''I BT 00001 99999''つまり1から99999を抽出するとしたならば、''1から99999までを個別の[[OR>ABAP/OR]]判定に分解する''という動きとなる。
この時、分解された[[SELECT>ABAP/SELECT]]命令が一定の長さ(3000行だっけか?)を超過すると[[ショートダンプ>SAPの共通用語/ショートダンプ]]が起きるため、使用には注意したい。
(※最近のバージョンでは発生しないように思える。過去の話?)
~
~
CENTER:【スポンサードリンク】
#htmlinsert(amazon_book_sap_system_implement)
~
~
----
#pcomment(reply)