Ansicht
Dokumentation
ABAPDELETE_ITAB - DELETE ITAB
General Material Data ABAP Short ReferenceDiese Dokumentation steht unter dem Copyright der SAP AG.
DELETE itab
DELETE ${ itab_line $|
itab_lines $| duplicates $}.
Wirkung
Systemfelder
sy-subrc | Bedeutung |
0 | Es wurde mindestens eine Zeile gelöscht. |
4 | Es wurde keine Zeile gelöscht, da beim Löschen über einen Tabellenschlüssel bzw. bei Angabe eines logischen Ausdrucks keine passende Zeile gefunden wurde, beim Löschen über einen Tabellenindex der angegebene Index größer als die aktuelle Anzahl von Zeilen war oder keine doppelten benachbarten Zeilen gefunden wurden. |
Das Systemfeld sy-tabix wird nicht gesetzt.
Hinweise
- Das Löschen von Zeilen interner Tabellen mit DELETE gibt in aller Regel keinen Speicher der internen Tabelle frei. Um diesen Speicher freizugeben, müssen Anweisungen wie CLEAR oder FREE verwendet werden.
- Eine interne Tabelle, in der alle Zeilen mit DELETE gelöscht wurden ist in der Regel keine initiale interne Tabelle.
- Beim Löschen von Zeilen einer internen Tabelle fallen grundsätzlich Kosten für die Aktualisierung aller vorhandenen Tabellenschlüssel und Tabellenindizes an. Der Primärschlüssel und alle eindeutigen Sekundärschlüssel werden direkt aktualisiert, während nicht-eindeutige Sekundärschlüssel nur aktualisiert werden, wenn die zu löschende Zeile im bereits aktualisierten Teil eines zugehörigen Index enthalten ist (lazy update). Insbesondere muss auch beim Löschen einer Zeile aus einer Standardtabelle, die über einen Sekundärschlüssel gesucht wurde, der primäre Tabellenindex aktualisiert werden, was in der Regel eine lineare Suche erfordert.
-
Es findet keine implizite Auswahl eines passenden Schlüssels oder Index statt. Der verwendete
Tabellenschlüssel oder Tabellenindex ist immer eindeutig spezifiziert. Es kommt zu einer Warnung von der Syntaxprüfung, wenn es einen passenden
sekundären
Tabellenschlüssel gibt, dieser aber nicht verwendet wird. Diese Warnung sollte durch Verwendung des Schlüssels behoben werden. Sie kann in Ausnahmefällen aber auch durch ein
Pragma umgangen werden.
- Mit einer speziellen Variante DELETE mesh_path können Zeilen aus den letzten Pfadknoten eines
Mesh-Pfads gelöscht werden.
Beispiel
Löschen aller initialen Zeilen einer internen Tabelle.
Ausnahmen
Behandelbare Ausnahmen
- Ursache: Fehler in der dynamischen WHERE-Bedingung
Laufzeitfehler: DYN_WHERE_PARSE_ERROR
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.
Length: 4979 Date: 20240426 Time: 114354 sap01-206 ( 68 ms )