Interne Tabelle: Einen Eintrag löschen

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

Getting started ... Alles für einen gelungenen Start.
20 Beiträge • Seite 1 von 2 (current) Nächste
20 Beiträge Seite 1 von 2 (current) Nächste

Interne Tabelle: Einen Eintrag löschen

Beitrag von Gast ( / / 0 / 3 ) »
Hallo,

wie kann ich in einer itab einen bestimmten Eintrag/Ziele löschen?

Viele Grüße
Volker

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


Re: Interne Tabelle: Einen Eintrag löschen

Beitrag von Frank Dittrich (Expert / 674 / 0 / 15 ) »
Anonymous hat geschrieben:wie kann ich in einer itab einen bestimmten Eintrag/Ziele löschen?
Mit DELETE, würde ich vorschlagen. Ist das eine Fangfrage?

Wenn Du noch sagst, nach welchen Kriterien welcher Eintrag gelöscht werden soll, kann man evtl. noch vorschlagen, welche Variante geeignet ist.
Eigentlich sollte das aber auch in der F1-Hilfe zu DELETE stehen.
Wenn immer noch Unklarheiten bestehen, einfach noch mal genauer beschreiben, was Du willst und was Du an der F1-Hilfe nicht verstanden hast.

Beitrag von Frank Dittrich (Expert / 674 / 0 / 15 ) »
Und wenn man alle Einträge der itab löschen will, geht das z.B. auch mit CLEAR, FREE, REFRESH oder SELECT.

Verrätst Du uns noch, was Du eigentlich erreichen wolltest?

Oder soll ich die Einrichtung eines F1-Forums vorschlagen.
Und alle Fragen, die mit der F1-Taste beantwortet werden können, werden automatisch dahin verschoben.
Wäre glatt ein Grund, mich als Moderator zu bewerben 8)

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
sollte jemand den Kommentar eines gewissen 'guest' vermissen, ist das Absicht.

An sich war der Beitrag nicht zu beanstanden, aber er kann zu einer Verunsicherung von Anfängern führen, die nicht akzeptiert wird.
guest hat geschrieben:also wenn ich solche fragen lese, wird mir angst und bange... sitzen solche programmierer beim kunden und entwickeln für ein produktiv system?

oder war nur jemand zu faul seine hausaufgaben zu machen
Auf Wunsch von Mod-Kollegen zitiere ich den Post.

Ich möchte mich in aller Form für die etwas zu restriktive Moderierung entschuldigen.
Zuletzt geändert von ereglam am 22.06.2005 13:38, insgesamt 1-mal geändert.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Beitrag von Frank Dittrich (Expert / 674 / 0 / 15 ) »
ereglam hat geschrieben:sollte jemand den Kommentar eines gewissen 'guest' vermissen, ist das Absicht.

An sich war der Beitrag nicht zu beanstanden
Findest Du nicht, dass Du da etwas übertreibst?
Dann lass den Beitrag doch stehen. (Ich habe ihn nicht gelesen, bin aber jetzt neugierig geworden ;)
aber er kann zu einer Verunsicherung von Anfängern führen, die nicht akzeptiert wird.
Finde ich auch übertrieben.
Wer sich überhaupt keine Mühe gibt, sein Problem selbst zu lösen (F1-Taste) oder es wenigstens halbwegs nachvollziehbar zu beschreiben, darf von mir aus auch gern mal "verunsichert" werden. Vielleicht hilft es ja, bevor die nächste Frage gestellt wird.

Und gefressen wurde hier doch noch niemand.

(Natürlich gehört auch diese Diskussion nicht wirklich ins "Getting started"-Forum. Aber nur per PM wollte ich das auch nicht ansprechen.)

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Es war eine Vorverurteilung, die ich im hiesigen Anfängerforum als inakzeptabel ansehe, so lange keine weiteren Informationen von Threadstarter geliefert wurden.

Grundsätzlich stimme ich schon mit Euch darin überein, dass der Fragende auch mal SAP-seitige Hilfemöglichkeiten selbstständig nutzt.

Leider kommt es aber immer wieder vor, dass jemand vor die Kiste gesetzt wird, gezeigt bekommt, wie man z.B. in die SE80 kommt und vielleicht noch ein Buch mit ABAP-Befehlsübersicht hingelegt bekommt und dann mal machen soll.
Dass so jemand leider wenig Ahnung von Hilfemöglichkeiten in R/3 hat ist wohl klar. (dass ich eine solche Einführung ist ein anderes Thema).

Zurück zum Thema:
Der Threadstarter ist darauf hingewiesen worden, dass er die F1-Hilfe benutzen und sein Problem etwas genauer beschreiben soll.
Damit ist meines Erachtens alles erfolgt, was wir für's Erste bieten können. Antwortet er, kann man ihm weiterhelfen. Aber nicht durch herablassende Bemerkungen!
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Beitrag von zzcpak (Expert / 673 / 5 / 68 ) »
Ehrlich, gebe Frank vollkommen recht. Diese Zensur hier im Forum sollte sich wirklich nur auf krasse Fälle beschränken. Ihr könnt ja auch gleich jeden Beitrag löschen, der euch nicht in den Kram passt.

Was ist so schlimm an diesen vermeintlich beleidigenden Posts? Wird sich schon keiner was holen davon. Des weiteren lockern diese die Atmosphäre des an sich recht trockenen Stoffs etwas auf ;)

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Liebe Forumteilnehmer,

es war mitnichten meine Absicht, ein zensiertes Forum zu schaffen, denn das will ich genauso wenig wie Ihr.

Damit sollte das Thema erledigt sein.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Delete im Loop Vorsicht !

Beitrag von meinrad (ForumUser / 67 / 0 / 0 ) »
Hallo.
alS 1. ein sachlicher Beitrag:
Vorsicht mi Delete im LOOP- siehe f1-Hilfe.
Da ich vor Jahren die F1-Hilfe zu dem Delete nicht genau verstanden habe und ich auch nicht alle Fälle testen wollte, habe ich mir folgendes angewöhnt und noch nie Probleme gehabt.
Scenario: ich will über eine interne Tabelle loopen und im LOOP bestimmte Einträge löschen, die ich abet nicht über eine where-Bedingung eifach erkennen kann und ich will sicher sein dass er alle Einträge im LOOP verarbeitet.
Lösung: im LOOP Clear auf die Workarea/Koipzeile un MODIFY der internen Tabelle.
Nach dem LOOP ein Delete auf die Tabelle mit where-Bedinung: itab-feldxx is initial.
Bei sehr großen Tabellen vielleicht nicht sehr performant.
2. Zum Kenntnisstand der Anfänger: Ich glaube, dass auch sehr oft Anfänger als hochqualifizierte und zertifizierte SAP-Entwickler auf den Markt geschmissen werden und die IT-Chefs den Traum-Noten von 1,1 bis 1,9 glauben.Ich habe im engsten Bekanntenkreis vor zwei Jahren erleben können, was man von den SNI-Kursen halten kann, die vom Arbeitsamt gefördert werden. Kaum jemand konnte auf Anhieb eine Interne Tabelle definieren, obwohl die Kurse mehrere Monate dauern. Traurig ist ja auch, dass heutzutage Wirtschaftsinformatiker BFA (Berufsakademie, praxisorieentieert) keine Programmierlogik und z.B. auch keinen Gruppenwechsel mehr lernen.

Re: Delete im Loop Vorsicht !

Beitrag von black_adept (Top Expert / 4099 / 128 / 941 ) »
meinrad hat geschrieben:Bei sehr großen Tabellen vielleicht nicht sehr performant.
Doch - und zwar grade da. Siehe den Hinweis zur Performance am Ende der F1-Hilfe zu DELETE ( für int. Tabellen ).
Wenn weiterhin noch mit ASSIGN statt der workarea gearbeitet wird, sollte es sogar noch ein wenig schneller gehen.

Beitrag von Gast ( / / 0 / 3 ) »
"zertifizierte SAP-Entwickler" stehen bei mir in der Türe schlange um ihre Fragen los zu werden.

Viele arbeiten rein auf diese Zertifizierung hin.
Spätestens bei kleineren? Kunden, streichen diese "zertifizierte" die Segel.

In grossen Betrieben treiben diese so mit.

Nur um allen Mißverständnissen vorzubeugen: Es gibt auch gute "zertifizierte".

Nur am Zertifikat selber sieht man nicht, ob einer ABAP kann oder nicht.

Beitrag von Guest ( / / 0 / 3 ) »
Moin.
Also herabwürdigen wollte ich mit meinem Beitrag gestern sicher niemanden, dass möchte ich hier mal klarstellen!

Aber:
ich meine tatsächlich, dass mir angst und bange wird, wenn ich solche fragen (dieser Thread ist nur ein beispiel) lese. Auch in einem thread für "Anfänger" setze ich zumindest grundkenntnisse voraus, die man bereits erlangt, wenn man sich die mühe macht auch nur ein abap-buch mal gewissenhaft durchzuarbeiten!

und der zugegeben etwas bissige kommentar bezüglich "hausaufgaben" war deshalb beabsichtigt, weil ich eigentlich nur DIESEN eindruck bekommen kann, dass jemand keinen bock hat seine hausaufgaben zu machen und das macht mir wiederum angst, weil solche leute sich daran gewöhnen könnten, sich auf solche foren zu verlassen, satt zu lernen "probleme" selbst zu lösen... und das macht sie dann zu "schlechten" programmierern...

:!: und grade dieser prozess des "selber-finden" ist in meinen augen ein sehr wichtiger teil, das analytische verständnis eines angehenden programmierers zu sensibilisieren. und genau dieses analytische verständnis fehlt leider sehr vielen kollegen unseres berufsstandes und ich denke dass eben solche anfänge stark dazu beitragen.


als dann, liebe grüße.

Beitrag von Guest ( / / 0 / 3 ) »
Frank Dittrich hat geschrieben: (Natürlich gehört auch diese Diskussion nicht wirklich ins "Getting started"-Forum. Aber nur per PM wollte ich das auch nicht ansprechen.)
natürlich ist das der falsche ort, um über zensur zu sprechen, aber schon der richtige um über den "Anfänger" an sich mal zu diskutieren, denn die lesen ja hier und können dann ja auch mal was aus ihrer sicht dazu beitragen...

vieleicht sind die "Ausbildungen" im ABAP-bereich ja wirklich so schlecht, dass es einem anfänger wirklich sehr schwer fällt vermeintlich einfache fragen selbst zu beantworten???

Beitrag von babap (Expert / 681 / 1 / 1 ) »
Hallo,

zum Thema Löschen / Performance:

Am Besten für die Performance ist die Verwendung von Feldsymbolen:

LOOP AT tabelle ASSIGNING <tabelle>.

ENDLOOOP.

Wenn man einen Datensatz löschen möchte, den man erst durch eine Einzelprüfung herausfinden kann, macht man das in der LOOP-Schleife.
Dort prüft man am Anfang ob man den bewußten Satz "am Wickel" hat und löscht ihn. Dann nichts weiter machen, und den nächsten Schleifendurchlauf abwarten.

Ohne Loop-Schleife löscht man den bewußten Satz einfach mit Angabe des INDEX (falls man ihn kennt ...), oder mit diversen WHERE-Bedingungen.

Alle Einträge löscht man mit REFRESH oder FREE oder CLEAR tabelle[] (Tabellenkörper).

Achtung: CLEAR tabelle löscht die Tabelle nur, wenn sie keine Kopfzeile hat, sonst wird nur die Kopfzeile gelöscht. SELECT geht bei internen Tabellen garnicht.

Gruß
babap

Beitrag von Gast ( / / 0 / 3 ) »
babap hat geschrieben:SELECT geht bei internen Tabellen garnicht.

Code: Alles auswählen.

SELECT MANDT FROM T000 INTO CORRESPONDING FIELDS OF TABLE itab WHERE MANDT EQ '000' AND MANDT EQ '999'.
Niemand hat behauptet, dass das die sinnvollste Methode ist.

Vergleichbare Themen

1
Antw.
1581
Views
Eintrag in eine interne Tabelle
von kaim77 » 19.12.2013 15:46 • Verfasst in ABAP® für Anfänger
0
Antw.
125
Views
2
Antw.
295
Views
Select auf DB in Interne Tabelle aber mit eindeutigem Eintrag
von Harry_Koeller » 05.11.2024 14:56 • Verfasst in ABAP® Core
4
Antw.
14931
Views
interne Tabelle löschen
von lisa » 17.09.2008 11:19 • Verfasst in ABAP® für Anfänger
2
Antw.
1385
Views
Generisch interne Tabelle löschen mit IndexNummer
von retsch » 03.04.2023 21:06 • 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

Daten an Tabelle binden
vor 7 Stunden von Bright4.5 3 / 1479
Regex in where
vor 9 Stunden von tar 6 / 144

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

Daten an Tabelle binden
vor 7 Stunden von Bright4.5 3 / 1479
Regex in where
vor 9 Stunden von tar 6 / 144

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9821