Ansicht
Dokumentation

ABAPDELETE_SOURCE - DELETE SOURCE

ABAPDELETE_SOURCE - DELETE SOURCE

General Data in Customer Master   SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

DELETE dbtab, source

Kurzreferenz



... ${@wa$|@( expr )$}
  $| ${TABLE @itab$|@( expr )$} ...



Alternativen:

1. ... @wa$|@( expr )

2. ... TABLE @itab$|@( expr )

Wirkung

In der Variante DELETE target FROM der Anweisung DELETE kann hinter FROM ein nicht-tabellenartiges Datenobjekt oder eine interne Tabelle hinter TABLE als Hostvariable oder Hostausdruck angegeben werden. Der Inhalt der Datenobjekte bestimmt welche Zeile(n) gelöscht werden. Wie bei jeder Hostvariablen muss dem Namen des Arbeitsbereichs oder der internen Tabelle das Fluchtsymbol @ vorangestellt werden.

Hinweis

Die Angabe von Hostvariablen ohne Fluchtsymbol @ ist obsolet. In den strikten Modi der Syntaxprüfung ab Release muss das Fluchtsymbol @ angegeben werden.

Alternative 1

... @wa$|@( expr )


Wirkung

Bei Angabe eines nicht-tabellenartigen Arbeitsbereichs als Hostvariable @wa oder Hostausdruck @( expr ), wird in der DDIC-Datenbanktabelle eine Zeile durchsucht, die im Primärschlüssel den gleichen Inhalt wie das entsprechende Anfangsstück des Arbeitsbereichs hat. Der Inhalt des Arbeitsbereichs wird unkonvertiert und gemäß der Struktur der DDIC-Datenbanktabelle bzw. des DDIC-Views interpretiert. Diese Zeile wird gelöscht. Der Arbeitsbereich muss die Voraussetzungen für die Verwendung in -Anweisungen erfüllen.

Falls es in der Datenbank keine Zeile mit dem gleichen Inhalt des Primärschlüssels gibt, wird keine Zeile gelöscht und sy-subrc auf 4 gesetzt.

Hinweise

  • Der Arbeitsbereich wa sollte über die Länge des Primärschlüssels mit Bezug auf die DDIC-Datenbanktabelle bzw. den DDIC-View im ABAP Dictionary deklariert werden.
  • Wenn als Arbeitsbereich wa ein Konstruktorausdruck als Hostausdruck angegeben ist, bei dem der Datentyp über das Zeichen # inferiert wird, wird als Typ eine Struktur erzeugt, die aus den Komponenten des Primärschlüssels der DDIC-Datenbanktabelle besteht.
  • Bei statischer Angabe der DDIC-Datenbanktabelle bzw. DDIC-View ist außerhalb von Klassen noch eine Kurzform möglich, bei der die Angabe des Arbeitsbereichs mit FROM wa weggelassen werden kann, falls mit der Anweisung TABLES ein Tabellenarbeitsbereich dbtab für die entsprechende DDIC-Datenbanktabelle bzw. DDIC-View deklariert ist. Das System ergänzt die DELETE-Anweisung dann implizit um den Zusatz FROM dbtab.

Beispiel

Löschen einer Fluggesellschaft aus der DDIC-Datenbanktabelle SCARR über einen Hostausdruck.

Alternative 2

... TABLE @itab$|@( expr )


Wirkung

Bei Angabe einer internen Tabelle als Hostvariable @itab oder Hostausdruck @( expr ) bearbeitet das System alle Zeilen der internen Tabelle gemäß den Regeln für den Arbeitsbereich wa. Der Zeilentyp der internen Tabelle muss die Voraussetzungen für die Verwendung in-Anweisungen erfüllen.

Falls es in der Datenbank zu einer Zeile der internen Tabelle keine Zeile mit dem gleichen Inhalt des Primärschlüssels gibt, wird die entsprechende Zeile nicht berücksichtigt und sy-subrc auf 4 gesetzt. Falls die interne Tabelle leer ist, werden keine Zeilen gelöscht, sy-subrc wird aber dennoch auf 0 gesetzt. Das Systemfeld sy-dbcnt wird immer auf die Anzahl der tatsächlich gelöschten Zeilen gesetzt.

Hinweise

  • Bei Verwendung einer internen Tabelle führt die paketweise Verarbeitung dazu, dass ein zur DELETE-Verarbeitung paralleler Lesezugriff noch einen Teil der löschenden Zeilen sieht.
  • Wenn als interne Tabelle itab ein Konstruktorausdruck als Hostausdruck angegeben ist, bei dem der Datentyp über das Zeichen # inferiert wird, wird als Typ eine strukturierte Standardtabelle mit leerem Tabellenschlüssel erzeugt, deren Zeilentyp aus den Komponenten des Primärschlüssels der DDIC-Datenbanktabelle besteht.

Beispiel

Löschen aller Flüge einer Fluggesellschaft aus der DDIC-Datenbanktabelle SFLIGHT, in denen für den aktuellen Tag keine Plätze belegt sind. Die interne Tabelle, aus der die Schlüsselwerte der zu löschenden Zeilen entnommen werden, wird in einem Hostausdruck über einen Methodenaufruf besorgt. Das Mandantenfeld muss in der Zeilenstruktur der internen Tabelle vom Typ sflight_key_tab vorkommen, damit deren Komponenten zum Primärschlüssel der DDIC-Datenbanktabelle passen. Dieses Beispiel hat die gleiche Funktion wie das zu DELETE dbtab - cond, benötigt aber zwei Datenbankzugriffe.






CPI1466 during Backup   rdisp/max_wprun_time - Maximum work process run time  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 7453 Date: 20240425 Time: 174236     sap01-206 ( 124 ms )