Ansicht
Dokumentation

ABAPDELETE_ITAB_INDEX - DELETE ITAB INDEX

ABAPDELETE_ITAB_INDEX - DELETE ITAB INDEX

Vendor Master (General Section)   BAL_S_LOG - Application Log: Log header data  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

DELETE itab, index

Kurzreferenz



...   ${ 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:

... USING KEY keyname

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.

Zeilen über Index löschen

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:

... USING KEY loop_key

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 )