Ansicht
Dokumentation
ABAPDELETE_ITAB_KEY - DELETE ITAB KEY
TXBHW - Original Tax Base Amount in Local Currency Vendor Master (General Section)Diese Dokumentation steht unter dem Copyright der SAP AG.
DELETE itab, table_key
... TABLE itab ${ FROM wa $[USING KEY keyname$] $}
$| ${ WITH TABLE KEY $[keyname COMPONENTS$]
${comp_name1$|(name1)$} = operand1
${comp_name2$|(name2)$} = operand2
...
$} ...
Alternativen:
1. ... TABLE itab FROM wa $[USING KEY keyname$]
2. ... TABLE itab WITH TABLE KEY $[keyname COMPONENTS$] ...
Wirkung
Angabe eines Tabellenschlüssels als Suchschlüssel. Die Werte können entweder implizit in einem Arbeitsbereich wa hinter FROM oder durch das explizite Aufführen der Komponenten des verwendeten Tabellenschlüssels hinter TABLE KEY angegeben werden.
Der Zugriff findet bei Verwendung des primären Tabellenschlüssel für die einzelnen Tabellenarten wie folgt statt:
-
Standardtabellen werden linear durchsucht.
-
Sortierte Tabellen werden binär durchsucht.
-
Bei Hash-Tabellen wird der Hash-Algorithmus verwendet.
Bei Verwendung eines sekundären Tabellenschlüssels erfolgt der Zugriff bei einem
sortierten Schlüssel über eine binäre Suche und bei einem
Hash-Schlüssel über einen
Hash-Algorithmus.
Hinweis
Beim Löschen einer Zeile aus einer Standardtabelle über einen Sekundärschlüssel
hängt die gesamte Laufzeit im Mittel linear von der Anzahl der Tabellenzeilen ab. Während
die zu löschende Zeile zwar schnell gefunden wird, muss beim Aktualisieren des Primärindex der zu löschende Eintrag linear gesucht werden.
Alternative 1
... TABLE itab FROM wa $[USING KEY keyname$]
Wirkung
Für wa muss ein zum Zeilentyp der internen Tabelle kompatibler Arbeitsbereich angegeben werden. Es handelt sich um eine funktionale Operandenposition. Es wird die erste gefundene Zeile der internen Tabelle verarbeitet, deren Werte in den Spalten des verwendeten Tabellenschlüssels mit denen der entsprechenden Komponenten von wa übereinstimmen. Sind die Schlüsselfelder in wa leer, wird kein Eintrag verarbeitet.
Wenn der Zusatz USING KEY nicht angegeben ist, wird der
primäre Tabellenschlüssel verwendet. Wenn der Zusatz
USING KEY angegeben ist, wird der in keyname angegebene Tabellenschlüssel verwendet.
Wenn auf eine Standardtabelle über den
primären Tabellenschlüssel zugegriffen wird und dieser
leer ist, wird die erste Zeile der internen
Tabelle gelöscht. Falls dies statisch erkennbar ist, kommt es zu einer Warnung von der Syntaxprüfung.
Hinweise
- Bei Verwendung des primären Tabellenschlüssels ist zu beachten, dass dies auch der Standardschlüssel sein kann, wodurch unerwartete Effekte auftreten können:
- Bei strukturiertem Zeilentyp umfasst der Standardschlüssel alle zeichen- und byteartigen Komponenten.
- Der Standardschlüssel einer Standardtabelle kann leer sein.
- Außerhalb von Klassen gibt es noch eine
obsolete Kurzform, bei der die Angabe FROM wa weggelassen werden kann, falls die interne Tabelle eine gleichnamige
Kopfzeile itab
hat. Die Anweisung verwendet dann implizit die Kopfzeile als Arbeitsbereich. Ohne FROM wa kann USING KEY auch nicht angegeben werden.
Beispiel
Löschen der Tabellenzeile, die im Schlüsselfeld carrid des Primärschlüssels
den gleichen Wert wie das eingebbare Feld carrid hat, über einen mit dem Wertoperator
VALUE konstruierten Arbeitsbereich.
Beispiel
Das Beispiel demonstriert eine umständliche Art, alle Flugverbindungen zwischen zwei bestimmten
Städten über einen sekundären Tabellenschlüssel zu löschen. Normalerweise
arbeitet man in einem solchen Fall aber mit einer WHERE-Bedingung.
Alternative 2
... TABLE itab WITH TABLE KEY $[keyname COMPONENTS$] ...
Wirkung
Jede Komponente des verwendeten Tabellenschlüssels muss entweder direkt als comp_name1 comp_name2 ... oder als eingeklammertes zeichenartiges Datenobjekt name1 name2 ..., das bei Ausführung der Anweisung den Namen der Komponente enthält, aufgeführt werden. Bei comp_name1 comp_name2 ... handelt es sich um funktionale Operandenpositionen. Die Groß-/Kleinschreibung wird in name nicht berücksichtigt. Falls name nur Leerzeichen enthält, wird diese Komponentenangabe bei Ausführung der Anweisung ignoriert. Jeder Komponente muss ein Datenobjekt dobj1 dobj2 ... zugeordnet werden, das kompatibel zum Datentyp der Komponente oder in diesen konvertierbar ist. Es wird die erste gefundene Zeile der internen Tabelle verarbeitet, deren Werte in den Spalten des verwendeten Tabellenschlüssels mit den Werten in den zugeordneten Datenobjekten dobj1 dobj2 ... übereinstimmen. Falls notwendig, wird der Inhalt von dobj1 dobj2 ... vor dem Vergleich in den Datentyp der Komponente konvertiert.
Wenn der Zusatz COMPONENTS nicht angegeben ist, wird der
primäre Tabellenschlüssel verwendet. Wenn der Zusatz
COMPONENTS angegeben ist, wird der in keyname angegebene Tabellenschlüssel verwendet.
Hinweise
-
Bei Tabellen mit nicht-strukturiertem Zeilentyp, bei denen die gesamte Tabellenzeile als Tabellenschlüssel definiert ist, kann die
Pseudokomponente table_line als Komponente angegeben werden.
-
Um überraschende Ergebnisse nach einer Konvertierung zu vermeiden, sollten dobj1 dobj2 ... kompatibel zum Datentyp der Komponente sein.
-
Es darf kein Customizing-Include als Komponente angegeben werden, solange es leer ist.
Beispiel
Löschen der Tabellenzeile, die im Schlüsselfeld carrid den gleichen Wert wie das eingebbare Feld carrid hat, über den primären Tabellenschlüssel.
Beispiel
Löschen aller Flugverbindungen zwischen zwei bestimmten Städten über einen sekundären
Tabellenschlüssel. Normalerweise arbeitet man in einem solchen Fall aber mit einer WHERE-Bedingung.
CPI1466 during Backup BAL_S_LOG - Application Log: Log header data
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 11105 Date: 20240423 Time: 084849 sap01-206 ( 142 ms )