Delete innerhalb eines Loop

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

Delete innerhalb eines Loop

Beitrag von ostpower (ForumUser / 48 / 1 / 0 ) »
Hallo zusammen,

ich lese in eine interne tabelle die einzelnen datensätze mit einer bedingung. das sieht in etwa so aus:

Code: Alles auswählen.

LOOP AT iTable2 INTO isTable2 WHERE pnr = isTable1-pnr.

 Delete from Table2.

ENDLOOP.
Und ich will jetzt die Datensätze die er da findet löschen, aber wenn ich nur den Befehl "delete from table2" mach, dann löscht er ja die ganze tabelle, oder muss ich dann nochma die where-klausel "where pnr = table1-pnr". des wär ja doppelt gemoppelt, weil er durch den loop ja schon die relevanten datensätze findet.

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


Re: Delete innerhalb eines Loop

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Servus,

du musst ABAP schon sagen, was es löschen soll... entweder den konkreten Eintrag oder die aktuell "geloopte" Zeile... geht beides. :-)

1. DELETE TABLE iTable2 FROM isTable2.
oder
2. DELETE iTable2 INDEX sy-tabix.

Viele Grüße
Christoph

Re: Delete innerhalb eines Loop

Beitrag von Ratazong (Specialist / 144 / 1 / 14 ) »

Code: Alles auswählen.

DELETE iTable2 WHERE pnr = isTable1-pnr.
Kein Loop nötig.

Re: Delete innerhalb eines Loop

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
@Ratazong:

Stimmt, das ist natürlich noch schneller, wenn man nichts ausser das Delete machen will. :-)

Re: Delete innerhalb eines Loop

Beitrag von ostpower (ForumUser / 48 / 1 / 0 ) »
Hm...Ok aber bei beiden lösungen werden die Daten doch nur aus der internen tabelle gelöscht, die reale Tabelle wird doch dadurch nicht beeinflusst oder? weil ich will die datensätze ja letztendlich aus der wirklichen tabelle löschen.


Re: Delete innerhalb eines Loop

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Ok, das war klassisch aneinander vorbeigeredet. Sah so aus, als wäre der Tabellenname nur ein Tippfehler... :D

Michael hat natürlich recht, in der Hilfe findest du die jeweilig gültige Syntax. Das ist mitunter etwas blöd geraten bei SAP, mal mit FROM, mal ohne...

Richtig wäre dann:

Code: Alles auswählen.

 DELETE FROM  Table2 WHERE pnr = isTable1-pnr.
Solltest du noch andere Sachen im Loop vorhaben passt:

Code: Alles auswählen.

LOOP AT iTable2 INTO isTable2 WHERE pnr = isTable1-pnr.

 DELETE Table2 FROM isTable2.

ENDLOOP.

Seite 1 von 1

Vergleichbare Themen

1
Antw.
482
Views
Delete in Loop abglecih 2 ITAb
von autohandel7 » 17.12.2021 10:35 • Verfasst in ABAP® für Anfänger
10
Antw.
3765
Views
Delete mit where ohne loop möglich?
von RIG » 03.09.2012 17:32 • Verfasst in ABAP® für Anfänger
1
Antw.
1672
Views
9
Antw.
11779
Views
DELETE FROM ... NOT IN...
von ChristianHo » 09.02.2016 10:00 • Verfasst in ABAP® für Anfänger
4
Antw.
3892
Views
LOOP in einem LOOP
von Bjuti » 10.09.2013 15:18 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

Aktuelle Forenbeiträge

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

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 6 Tagen von rob_abc gelöst 8 / 8485
ABAP - Mail so10 Text
vor einer Woche von retsch 6 / 2389
selection-screen comment mit icon
vor einer Woche von DeathAndPain 9 / 3665

Unbeantwortete Forenbeiträge

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