Ansicht
Dokumentation

ABAPDELETE_ITAB_KEY - DELETE ITAB KEY

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.
SAP E-Book

DELETE itab, table_key

Kurzreferenz



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

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 )