Löschen von itab-Zeilen

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Löschen von itab-Zeilen

Beitrag von Patrick1982 (ForumUser / 28 / 4 / 0 ) »
Moin,

ich habe eine wahrscheinlich recht einfache Frage, die ich aber irgendwie grad nicht richtig gelöst bekomme:

Ich habe in einem Programm 2 itabs.
Die eine (itab_gross) ist sehr groß (ca. 20 Spalten und 1 Mio. Zeilen), die andere (itab_klein) sehr klein (2 Spalten und rund 30-50 Zeilen).
In beiden itabs gibt es das Schlüsselfeld VKONT.
Nun möchte ich aus der itab_gross alle Einträge löschen, in denen das Feld VKONT mit dem selben Wert im Feld VKONT der itab_klein gefüllt ist.
Sprich: In der itab_groß sind 1 Mio. Einträge mit 1 Mio. verschiedenen Werten in VKONT und in der itab_klein gibt es z.B. 10 Einträge, in denen das Feld VKONT den selben Wert hat wie in der itab_groß. Diese Einträge sollen nun aus der itab_gross gelöscht werden.

Ich tue mich irgendwie schwer damit, über die itab_groß zu loopen und für jeden Eintrag zu prüfen, ob es einen entsprechenden Eintrag in der itab_klein gibt.
Was könnt ihr Profis mir empfehlen, wie ich das Prüfen und Löschen aufbauen sollte, dass die Performance noch einigermaßen akzeptabel ist?

Besten Dank und viele Grüße,
Patrick

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Löschen von itab-Zeilen

Beitrag von msfox (Specialist / 302 / 50 / 62 ) »
Ohne es zu prüfen, würde mir einfallen, die kleine IT_TAB in eine Range-Tabelle zu packen.
lt_vkonto_range type range of vkont_kk.

Un dann mit einem DELETE und IN zu löschen. Weiß aber nicht, ob DELETE mit IN umgehen kann.

Also:
DELETE itab_gross where vkont IN lt_vkonto_range.
--
Oder du sortierst die große Tabelle nach VKONT als Sorted Tabelle.
Dann machts du ein LOOP über die kleine.
Am Ende dann
DELETE itab_gross WHERE VKONT = <wa_vkont>.
--
Kann sein, dass du das Sort auch in meinem ersten Vorschlag brauchst. Kann nämlich sein, dass der IN-Operator auch nur sequenziell für jeden Eintrag in der RANGE über die große Tabelle BIS ZUM ENDE Loop und dann löscht. Wenn sie sortiert ist, geht die Suche schneller.

Re: Löschen von itab-Zeilen

Beitrag von DeathAndPain (Top Expert / 1795 / 213 / 396 ) »

Code: Alles auswählen.

LOOP AT itab_gross ASSIGNING FIELD-SYMBOL(<itab_gross>).
  CHECK LINE_EXISTS( itab_klein[ vkont = <itab_gross>-vkont ] ).
  DELETE itab_gross.
ENDLOOP.
Optimalerweise gibt es auf der itab_klein einen HASHED INDEX auf die Spalte vkont.

Seite 1 von 1

Vergleichbare Themen

11
Antw.
11552
Views
doppelte Zeilen aus ITAB eliminieren
von mörtel » 27.06.2007 10:10 • Verfasst in ABAP® für Anfänger
2
Antw.
2403
Views
Zeilen aus ALV Löschen
von moee » 12.03.2009 13:18 • Verfasst in ABAP® für Anfänger
4
Antw.
3093
Views
Aus DB löschen, was nicht in itab
von Legxis » 19.07.2018 16:19 • Verfasst in ABAP® Core
6
Antw.
4446
Views
ALV Drucktaste zum Zeilen einfügen/löschen
von Ibiza90 » 27.08.2013 08:24 • Verfasst in ABAP® für Anfänger
2
Antw.
1665
Views
Markierte Zeilen aus einem ALV löschen
von meier0815 » 26.04.2004 13:49 • Verfasst in ABAP® Core

Über diesen Beitrag



Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 255

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 255

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140