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 / 33 / 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 / 374 / 57 / 76 ) »
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 / 1961 / 261 / 415 ) »

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.
11745
Views
doppelte Zeilen aus ITAB eliminieren
von mörtel » 27.06.2007 10:10 • Verfasst in ABAP® für Anfänger
2
Antw.
2627
Views
Zeilen aus ALV Löschen
von moee » 12.03.2009 13:18 • Verfasst in ABAP® für Anfänger
4
Antw.
3203
Views
Aus DB löschen, was nicht in itab
von Legxis » 19.07.2018 16:19 • Verfasst in ABAP® Core
4
Antw.
2435
Views
ABAP Word Zeilen löschen
von Pfirsichbäumchen » 21.04.2017 17:32 • Verfasst in ABAP® Core
6
Antw.
4733
Views
ALV Drucktaste zum Zeilen einfügen/löschen
von Ibiza90 » 27.08.2013 08:24 • Verfasst in ABAP® für Anfänger

Ü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

Nach MESSAGE TYPE E Felder entsperren
vor einer Woche von rob_abc gelöst 8 / 8598
ABAP - Mail so10 Text
vor einer Woche von retsch 6 / 2494
selection-screen comment mit icon
vor einer Woche von DeathAndPain 9 / 3801

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

Nach MESSAGE TYPE E Felder entsperren
vor einer Woche von rob_abc gelöst 8 / 8598
ABAP - Mail so10 Text
vor einer Woche von retsch 6 / 2494
selection-screen comment mit icon
vor einer Woche von DeathAndPain 9 / 3801

Unbeantwortete Forenbeiträge

SD_PRINT_TERMS_OF_PAYMENT
vor einer Woche von Manfred K. 1 / 2903
BUSOBJEKT zu CMIS PHIO ermitteln
vor 4 Wochen von snooga87 1 / 4711