
テーブルプール
( プール ) とテーブルクラスタ ( クラスタ ) は、いずれも ABAP ディクショナリに格納される特殊なテーブルタイプです。テーブルプールやテーブルクラスタには、複数のテーブルのデータをまとめて格納することができます。テーブルプールやテーブルクラスタに割り当てられているテーブルを、プールテーブルまたはクラスタテーブルといいます。テーブルプールやテーブルクラスタは、内部の制御情報
(Dynpro 順序、プログラムパラメータ、一時データ、文書などの継続テキスト ) を保存するためだけに使用してください。ビジネス関連のデータはすべて、透過テーブル のみに保管されます。テーブルプール
データベースのテーブルは、テーブルプールに相当し、ここに、テーブルプールに割り当てられたプールテーブルの全レコードが保管されます。
プールの定義には、基本的に
2 つのキー項目 ( Tabname と Verkey) と、ロング引数項目 ( Vardata) が含まれます。プールは次のような構造です。
項目 |
データ型 |
意味 |
Tabname |
CHAR(10) |
プールテーブル名 |
Varkey |
CHAR (n) |
プールテーブルレコードのすべてのキー項目のエントリが文字列として格納され、 n の最大長は 110 です |
Dataln |
INT2(5) |
Vardata における文字列の長さ |
Vardata |
RAW (n) |
プールテーブルレコードの全データ項目のエントリが文字列として格納され、 n の最大長は使用するデータベースシステムによって異なります |
プールテーブルレコードを保存すると、割り当てられたテーブルプールに格納されます。プールテーブル名は、項目
Tabname に書き込まれます。プールテーブルの全キー項目の内容は項目 Varkey に文字列として書き込まれ、全データ項目の内容は項目 Vardata に文字列として書き込まれます。 Vardata に格納される文字列の長さは、データベースインタフェースによって項目 Dataln に入力されます。
テーブルプールの構造上の理由から、割り当てられるプールテーブルにはいくつかの制限があります。プールテーブル名は最長
10 文字に制限されています。また Varkey は文字項目なので、プールテーブルの全キー項目が文字データ型でなければなりません ( 例 : CHAR 、 NUMC 、 CLNT) 。プールテーブルの全キー項目または全データ項目の長さの合計は、割り当てられたプールの Verkey または Vardata 項目の長さを超えないようにしなければなりません。テーブルクラスタ
複数のクラスタテーブルの論理データレコードを、テーブルクラスタ内の
1 つの物理レコードにまとめて格納することができます。クラスタキーは、自由に定義できる一連のキー項目と、継続レコードを識別するための項目
( Pageno) によって構成されます。またクラスタには、クラスタキー用のクラスタテーブルのデータ項目の値を格納する項目 ( 長 ) ( Vardata) も含まれます。データが項目 ( 長 ) に収まらないときは、継続レコードが登録されます。データ文字列の構造についての制御情報は、 Vardata 項目の先頭に書き込まれます。テーブルクラスタの構造は以下のとおりです。
項目 |
データ型
|
意味 |
CLKEY1 |
* |
最初のキー項目 |
CLKEY2 |
* |
2 番目のキー項目 |
... |
... |
... |
CLKEYn |
* |
n 番目のキー項目 |
Pageno |
INT2(5) |
継続レコードの番号 |
Timestamp |
CHAR(14) |
タイムスタンプ |
Pagelg |
INT2(5) |
Vardata における文字列の長さ |
Vardata |
RAW (n) |
割り当てられたクラスタテーブルのデータ項目のエントリが文字列として格納され、 n の最大長は使用するデータベースシステムによって異なります |
ABAP
ディクショナリに格納される構造情報は、プールテーブルやクラスタテーブルから正しくデータを読み込むのために必要なものです。このためプールテーブルやクラスタテーブルは、クラスタインタフェースでオープン SQL を使用した場合にのみ処理が可能であり、データベースでネイティブ SQL を使用して直接処理することはできません。以下も参照してください。
テーブルプール / テーブルクラスタの登録 テーブルプール / テーブルクラスタの削除 プールテーブル / クラスタテーブルの登録 プールテーブル / クラスタテーブルの変更