Ansicht
Dokumentation

ABAPDELETE_ITAB - DELETE ITAB

ABAPDELETE_ITAB - DELETE ITAB

General Material Data   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

DELETE itab

Kurzreferenz



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.

Beispiel

Löschen aller initialen Zeilen einer internen Tabelle.

Ausnahmen

Behandelbare Ausnahmen

CX_SY_ITAB_DYN_LOOP

  • 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 )