Ansicht
Dokumentation
ABAPDELETE_ITAB_INDEX - DELETE ITAB INDEX
Vendor Master (General Section) BAL_S_LOG - Application Log: Log header dataDiese Dokumentation steht unter dem Copyright der SAP AG.
DELETE itab, index
... ${ itab INDEX idx $[USING KEY keyname$] $}
$| ${ itab $[USING KEY loop_key$]$} ...
Alternativen:
1. ... itab INDEX idx $[USING KEY keyname$]
2. ... itab $[USING KEY loop_key$]
Wirkung
Diese Alternativen spezifizieren die zu löschende Zeile über die Angabe einer Zeilennummer bezüglich eines Tabellenindex.
Alternative 1
... itab INDEX idx
Zusatz:
Wirkung
Mit dem Zusatz INDEX löscht die Anweisung DELETE die Zeile der in idx angegebenen Zeilennummer bezüglich eines Tabellenindex. idx ist eine numerische Ausdrucksposition vom Operandentyp i. Es kommt zu einer unbehandelbaren Ausnahme, falls idx einen Wert kleiner gleich 0 enthält.
Wenn der Zusatz USING KEY nicht verwendet wird, kann der Zusatz INDEX nur bei
Indextabellen verwendet werden und bestimmt die zu löschende Zeile aus deren
primären Tabellenindex.
Beispiel
Löschen der Tabellenzeile, die im Schlüsselfeld carrid den gleichen Wert wie das eingebbare Feld carrid hat, über den primären Tabellenindex.
Zusatz
... USING KEY keyname
Wirkung
Mit dem Zusatz USING KEY kann in keyname ein Tabellenschlüssel angegeben werden um explizit den zu verwendenden Tabellenindex anzugeben.
Wenn die Tabelle einen sortierten Sekundärschlüssel hat, kann dieser in keyname angegeben werden und die zu lesende Zeile wird aus dessen sekundärem Tabellenindex bestimmt. Ein sekundärer Hash-Schlüssel darf nicht angegeben werden.
Falls der primäre Tabellenschlüssel über seinen Namen primary_key angegeben wird, muss es sich um eine Indextabelle handeln und das Verhalten ist wie ohne die Angabe von USING KEY.
Hinweis
Wenn ein sortierter Sekundärschlüssel vorhanden ist, kann der Zusatz INDEX bei Verwendung von USING KEY bei allen Tabellenarten verwendet werden.
Die DELETE-Anweisung löscht die dritte Zeile der internen Tabelle, da diese im zum sekundären
Tabellenschlüssel skey gehörigen sekundären Tabellenindex die Zeilennummer 1 hat.
Alternative 2
... itab
Zusatz:
Wirkung
Diese Variante ist nur innerhalb einer LOOP-Schleife über die gleiche interne Tabelle möglich. Es wird implizit die aktuelle Tabellenzeile der LOOP-Schleife gelöscht. Wenn bei LOOP der Zusatz USING KEY angegeben ist, muss bei dieser Variante der Zusatz USING KEY loop_key angegeben sein.
Wenn die aktuelle Zeile im gleichen Schleifendurchgang gelöscht wurde, ist das Verhalten undefiniert.
Außerhalb einer LOOP-Schleife ist diese Variante verboten und führt zu einer Warnung bei der Syntaxprüfung, wenn statisch nicht erkennbar ist, dass sie in einer Schleife aufgeführt wird.
Hinweis
Die Verwendung dieser Alternative wird nicht empfohlen. Statt dessen sollte die Zeilennummer explizit mit dem Zusatz INDEX angegeben werden.
Folgende Schleife löscht alle Zeilen einer internen Tabelle, da durch die Kurzform der DELETE-Anweisung
immer die aktuelle erste Zeile gelöscht wird.
Zusatz
... USING KEY loop_key
Wirkung
Dieser Zusatz ist notwendig, wenn der für die LOOP-Schleife verwendete Tabellenschlüssel
bei der Anweisung LOOP explizit angegeben ist. Er drückt explizit aus, dass die aktuelle
Tabellenzeile der LOOP-Schleife gelöscht wird. Außer dem vordefinierten Namen
loop_key darf kein anderer Schlüssel angegeben werden. Wenn bei LOOP kein expliziter
Tabellenschlüssel angegeben ist, kann der Zusatz USING KEY loop_key verwendet werden, muss aber nicht.
Da der primäre Tabellenschlüssel explizit für die LOOP-Schleife angegeben ist, muss bei DELETE auch USING KEY loop_key angegeben werden.
BAL Application Log Documentation Fill RESBD Structure from EBP Component Structure
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 6918 Date: 20240427 Time: 051307 sap01-206 ( 104 ms )