Ansicht
Dokumentation
ABENABAP_SQL_STREAMING - ABAP SQL STREAMING
SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up General Data in Customer MasterDiese Dokumentation steht unter dem Copyright der SAP AG.
- Streaming
unterstützt das Streaming für LOBs in Datenquellen.
Systemklassen und -Interfaces für Lese- und Schreibströme
Die Systemklassen für die verschiedenen Arten von möglichen Datenströmen sind:
- CL_ABAP_DB_C_READER für zeichenartige Leseströme. Die Streaming-Datenquelle ist ein CLOB.
- CL_ABAP_DB_X_READER für binäre Leseströme. Die Streaming-Datenquelle ist ein BLOB.
- CL_ABAP_DB_C_WRITER für zeichenartige Schreibströme. Die Streaming-Datensenke ist ein CLOB.
- CL_ABAP_DB_X_WRITER für binäre Schreibströme. Die Streaming-Datensenke ist ein BLOB.
Dazu gibt es die speziellen Interfaces
für den vom Stromtyp unabhängigen Zugriff auf die Lese- und Schreibströme. Für weitere ressourceunabhängige Klassen und Interfaces sowie die Hierarchie der Objekttypen siehe die Abbildung und Erklärung unter Streaming.
Wichtige Methoden
Die Methoden für das Streaming in sind die gleichen wie beim allgemeinen Streaming.
Datenquellen und Datensenken
Als Datenquellen bzw. Datensenken kommen LOBs in DDIC-Datenbanktabellen in Frage, die im ABAP Dictionary deklariert sind. Die Instanzen obiger Klassen sind Datenströme, die an LOBs angebunden sind. Sie gehören zu den LOB-Handles und implementieren die entsprechenden Interfaces. Die Verwendung in erfolgt über Referenzvariablen, die auf solche LOB-Handles zeigen.
Datenströme für LOBs erzeugen
Leseströme
Ein mit einem LOB verbundener Lesestrom, d.h., eine Instanz der Klasse CL_ABAP_DB_C_READER oder CL_ABAP_DB_X_READER kann nur dadurch erzeugt werden, dass in der INTO-Klausel der Anweisung SELECT ein LOB der Ergebnismenge einer Referenzvariable für einen Lesestrom zugewiesen wird.
Siehe SELECT - LOB-Handles.
Schreibströme
Ein mit einem LOB verbundener Schreibstrom, d.h., eine Instanz der Klasse CL_ABAP_DB_C_WRITER bzw. CL_ABAP_DB_X_WRITER kann nur dadurch erzeugt werden, dass in den Anweisungen INSERT, UPDATE oder MODIFY eine Referenzvariable für einen Schreibstrom als Quelle angegeben wird. Allgemeinere Referenzvariablen können nicht angegeben werden.
Siehe INSERT, UPDATE, MODIFY dbtab - LOB-Handles.
Datenströme für LOBs schließen
Da die Anzahl gleichzeitig geöffneter Datenströme auf 16 beschränkt ist, sollten sie so bald wie möglich mit ihrer Methode CLOSE geschlossen werden. Unabhängig davon werden Leseströme implizit am Ende eines Durchgangs einer SELECT-Schleife und am Ende einer Datenbank-LUW geschlossen. Ein offener Schreibstrom wird nur durch einen Datenbank-Rollback implizit geschlossen. Bei einem Datenbank-Commit führt ein offener Schreibstrom dagegen zu dem Laufzeitfehler COMMIT_STREAM_ERROR.
Beispiele
RFUMSV00 - Advance Return for Tax on Sales/Purchases BAL Application Log Documentation
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 6636 Date: 20240523 Time: 165101 sap01-206 ( 66 ms )