ABAPDELETE_ITAB_KEY - DELETE ITAB KEY
CPI1466 during Backup Fill RESBD Structure from EBP Component StructureDiese Dokumentation steht unter dem Copyright der SAP AG.
DELETE itab - table_key
Syntax
... { FROM wa [USING KEY keyname] }
| { WITH TABLE KEY [keyname COMPONENTS]
{comp_name1|(name1)} = dobj1
{comp_name2|(name2)} = dobj2
... } ... .
Alternativen:
1. ... FROM wa [USING KEY keyname]
2. ... WITH TABLE KEY [keyname COMPONENTS] ...
Wirkung
Angabe eines Tabellenschlüssels als Suchschlüssel. Die Werte können entweder implizitin 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 einemsortierten Schlüssel über eine binäre Suche und bei einemHash-Schlüssel über einenHash-Algorithmus.
Hinweis
Beim Löschen einer Zeile aus einer Standardtabelle über einen Sekundärschlüsselhängt die gesamte Laufzeit im Mittel linear von der Anzahl der Tabellenzeilen ab. Währenddie zu löschende Zeile zwar schnell gefunden wird, muss beim Aktualisieren des Primärindex der zu löschende Eintrag linear gesucht werden.
Alternative 1
... FROM wa [USING KEY keyname]
Wirkung
Für wa muss ein zum Zeilentyp der internen Tabelle kompatibler Arbeitsbereich angegeben werden. Es handelt sich um einefunktionaleOperandenposition. Es wird die erste gefundene Zeile der internen Tabelle verarbeitet, deren Wertein 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 derprimäre Tabellenschlüssel verwendet. Wenn der Zusatz USING KEY angegeben ist, wird der in keyname angegebene Tabellenschlüssel verwendet.
Wenn auf eine Standardtabelle über denprimären Tabellenschlüssel zugegriffen wird und dieserleer ist, wird die erste Zeile der internen Tabelle gelöscht.
Hinweise
- Bei Verwendung des primären Tabellenschlüssels ist zu beachten, dass dies auch derStandardschlü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 auch noch eineobsolete Kurzform, bei der die Angabe FROM wa weggelassen werden kann, falls die interne Tabelle eine gleichnamigeKopfzeileitab 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 p_carrid hat, über einen Arbeitsbereich scarr_wa.
PARAMETERS p_carrid TYPE scarr-carrid.
DATA: scarr_tab TYPE SORTED TABLE OF scarr
WITH UNIQUE KEY carrid,
scarr_wa LIKE LINE OF scarr_tab.
SELECT *
FROM scarr
INTO TABLE scarr_tab.
IF sy-subrc = 0.
scarr_wa-carrid = p_carrid.
DELETE TABLE scarr_tab FROM scarr_wa.
ENDIF.
Alternative 2
... 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ührungder Anweisung den Namen der Komponente enthält, aufgeführt werden. Bei comp_name1 comp_name2 ... handelt es sich umfunktionaleOperandenpositionen. 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, daskompatibelzum Datentyp der Komponente oder in diesen konvertierbar ist. Es wird die erste gefundene Zeile derinternen Tabelle verarbeitet, deren Werte in den Spalten des verwendeten Tabellenschlüssels mitden 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 derprimä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 diePseudokomponente 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 p_carrid hat, über die explizite Angabe des primären Tabellenschlüssels.
PARAMETERS p_carrid TYPE scarr-carrid.
DATA scarr_tab TYPE SORTED TABLE OF scarr
WITH UNIQUE KEY carrid.
SELECT *
FROM scarr
INTO TABLE scarr_tab.
DELETE TABLE scarr_tab WITH TABLE KEY carrid = p_carrid.
Vendor Master (General Section) CPI1466 during Backup
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 11122 Date: 20120526 Time: 194810 triton ( 216 ms )






