テンプレートに準拠したディクショナリ テーブル (少なくとも fields を持つ) とともに、import
andステートメントを使用してデータベース内にデータ クラスターを格納することができます。export
MANDT, RELID, SRTFD, SRTF2, CLUSTR, CLUSTD
ディクショナリ tableと areaを使用して、内部テーブル全体を名前と IDta_test
を持つデータ クラスタとしてデータベースに保存/取得する 2 つのステートメント例を次に示します。testtab
TEST
ztest
AA
export testtab = ta_test to database ztest(AA) id 'TEST'.
import testtab = ta_test from database ztest(AA) id 'TEST'.
テーブルの内容をztest
見ると、次のレコードが表示されます (最初の 4 つのフィールドが主キーです)。
MANDT 200
RELID AA
SRTFD TEST
SRTF2 0 (auto-incremented for each record)
CLUSTR integer value with a maximum of 2.886
CLUSTD a 128 character hexadecimal string
また、この方法で保存されたデータの量は、内部テーブル内にあったデータよりもはるかに少ないことに気付きました (たとえば、内部テーブル内の 1.000.000 の一意のレコードは、ztest
テーブル内の 1.703 レコードのみになります)。ステートメントを設定compression off
すると、export
レコードの量は増えますが、それでもはるかに少ないです。
私の質問: これがどのように機能するかを知っている人はいますか? 実際のデータは別の場所に保存されており、そのデータへのztest
ポインタが含まれていますか? 圧縮?暗号化?実際のデータはデータベースから直接アクセスできますか (ABAP レイヤーをスキップします)?