Ansicht
Dokumentation

ABENABAP_SQL_WA - ABAP SQL WA

ABENABAP_SQL_WA - ABAP SQL WA

SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- Arbeitsbereiche in Anweisungen

Wenn mit den folgenden Anweisungen Arbeitsbereiche wa oder interne Tabellen itab als Ziel- bzw. Quellbereiche angegeben werden, gelten für den Arbeitsbereich bzw. den Zeilentyp der internen Tabelle folgende Voraussetzungen.

  • SELECT oder FETCH ohne den Zusatz CORRESPONDING FIELDS,
  • INSERT, UPDATE, MODIFY oder DELETE

Die Nichtbeachtung dieser Voraussetzungen führt zu einem Syntaxfehler oder einer Ausnahme.

Normale Arbeitsbereiche

Für Arbeitsbereiche , die keine Referenzvariablen für LOB-Handles enthalten, gelten die folgenden Regeln:

  • Der Datentyp des Arbeitsbereichs bzw. der Zeilentyp der internen Tabelle darf nicht tief sein bzw. keine tiefen Komponenten enthalten. Davon ausgenommen sind Strings sowie die speziellen Arbeitsbereiche für Streaming und Lokatoren.
  • Der Datentyp des Arbeitsbereichs bzw. der Zeilentyp der internen Tabelle darf keine Aufzählungstypen enthalten.
  • Der Arbeitsbereich bzw. die Zeilen der internen Tabelle müssen mindestens so lang wie die Datenbankstruktur sein und die Ausrichtung muss übereinstimmen. Bei der Anweisung DELETE muss diese Voraussetzung nur über die Länge des Primärschlüssels erfüllt sein.
  • Wenn der Arbeitsbereich bzw. die Zeilen der internen Tabelle strukturiert sind, muss die Fragmentsicht der Datenbankstruktur mit der des Arbeitsbereichs bzw. der internen Tabelle übereinstimmen.
  • Falls der Arbeitsbereich bzw. die Zeilen der internen Tabelle elementar sind, müssen sie zeichenartig und flach sein. Die Spalten der Datenbankstruktur müssen ebenfalls zeichenartig und flach sein.
  • Wenn der Arbeitsbereich Strings als Komponenten enthält bzw. selbst ein String ist oder in der Datenbankstruktur Spalten vom Typ SSTRING, STRING, RAWSTRING oder GEOM_EWKB vorkommen, muss der Arbeitsbereich kompatibel zur Datenbankstruktur sein.
  • Wenn in der Anweisung SELECT mit der Spaltenangabe * auf eine CDS-Entität zugegriffen wird, wird der Arbeitsbereich immer so überprüft, wie wenn er einen String als Komponente enthält.
  • Bei den ändernden Operationen INSERT, UPDATE und MODIFY müssen die übergebenen Werte in den Wertebereich der Spalten der DDIC-Datenbanktabellen passen. Ansonsten kommt es zu entsprechenden Ausnahmen. Dies gilt insbesondere für:
  • Spalten mit numerischen Datentypen.

  • Spalten der Typen SSTRING, STRING, RAWSTRING oder GEOM_EWKB. Die Strings des Arbeitsbereichs dürfen nicht länger als die maximale Länge der Spalten in der Datenbankstruktur sein. Diese Länge kann mit der eingebauten Funktion dbmaxlen festgestellt werden.

  • Spalten der Typen DATN, TIMN und UTCLONG. Es können nur gültige Datums-, Zeit- und Zeitstempelangaben übergeben werden.

Hinweis

Der Arbeitsbereich bzw. die Zeilenstruktur der internen Tabelle sollten immer wie die Datenbankstruktur aufgebaut sein. Wenn in der-Anweisung mit einer einzigen Datenquelle gearbeitet wird, kann ein gleichartig aufgebautes Datenobjekt durch Bezug auf die entsprechende DDIC-Struktur deklariert werden. Wenn mit mehreren Datenquellen gearbeitet wird (in der Anweisung SELECT), kann ein gleichartig aufgebautes Datenobjekt als geschachtelte Struktur aufgebaut werden, welche die Strukturen der einzelnen Datenquellen in der Reihenfolge, in der sie in der Anweisung aufgeführt sind, als Unterstrukturen enthält. Es sollte keine Struktur verwendet werden, bei der alle Komponenten auf einer Ebene liegen, da dann eventuelle Ausrichtungslücken zwischen den einzelnen Datenquellen nicht berücksichtigt werden.

LOB-Handle-Strukturen

Wenn ein Arbeitsbereich eine LOB-Handle-Struktur ist, d.h., mindestens eine Referenzvariable für LOB-Handles enthält, muss er genau wie die Struktur der Datenquelle aufgebaut und alle Komponenten bis auf die LOB-Handle-Komponenten müssen kompatibel zu den entsprechenden Komponenten der Datenquelle sein. Der statische Typ jeder LOB-Handle-Komponente muss das Interface IF_ABAP_DB_LOB_HANDLE enthalten und sowohl zur aktuellen Anweisung als auch zum Datentyp des zugeordneten LOBs passen.

Hinweis

In der Anweisung FETCH können derzeit noch keine LOB-Handle-Strukturen angegeben werden.






ROGBILLS - Synchronize billing plans   SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 6723 Date: 20240523 Time: 164644     sap01-206 ( 105 ms )