Änder eines Feldes auf einer Datenbanktabelle

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

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
8 Beiträge • Seite 1 von 1
8 Beiträge Seite 1 von 1

Änder eines Feldes auf einer Datenbanktabelle

Beitrag von Gast ( / / 0 / 3 ) »
Hallo!
Ich möchte gerne direkt auf der Datenbank ein Feld ändern.
Ich hab da einen select mit join, in dem ich am liebsten direkt das vbap-feld ändern möchte, falls sy-subrc = 0...( Wie ) geht das ???

select * into corresponding fields of it_tab
from vbak as a
inner join vbap as b
on a~vbeln = b~vbeln
where blablabla

endselect.

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


Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
zum Ändern von Daten benutzt man typischerweise UPDATE. (Ein INNER JOIN ist dort jedoch nicht zulässig)

Aber vielleicht solltest Du ein wenig mehr davon erzählen, was Du an der VBAP ändern möchtest. Wenn Du nämlich fehlerhafte Daten hineinschreibst, könntest Du Probleme mit Deinen Verantwortlichen bekommen...

Tut mir leid, es sagen zu müssen, aber die Art Deiner Fragestellung macht mir angst!
Gruß
Ereglam


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

Beitrag von axxter (ForumUser / 36 / 0 / 0 ) »
Das war eine Anfrage meines Vorgesetzten. Das geht schon in Ordnung. Ich hab bei ein paar Aufträgen ein Feld auf Positionsebene das falsch gefüllt wurde. Dieses Flag soll einfach nur space gesetzt werden.Die betroffen Belege werden im select gefunden

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
na gut. Dann könnte eine Lösung so aussehen...:

Code: Alles auswählen.

    DATA:
      it_itab TYPE TABLE OF vbap,
      wa_itab LIKE LINE OF it_itab.
    SELECT *
      FROM vbak AS a
        INNER JOIN vbap AS b
        ON a~vbeln = b~vbeln
      INTO CORRESPONDING FIELDS OF TABLE it_itab
      WHERE  a~vbeln EQ '...'.
    LOOP AT it_itab INTO wa_itab.
      UPDATE vbap
             SET vbeln = wa_itab-vbeln
             WHERE vbeln EQ wa_itab-vbeln
             AND   posnr EQ wa_itab-posnr.
    ENDLOOP.
PS: SELECT ... ENDSELECT-Schleifen sollte man sofort aus seinem Wortschatz verbannen und statt dessen SELECT INTO TABLE ... benutzen
Gruß
Ereglam


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

Auch Vorgesetzte können in die Irre führen.

Beitrag von meinrad (ForumUser / 67 / 0 / 0 ) »
Hallo,

Vom direkten Ändern in Standard-Tabellen lasse ich die Finger weg. Grundsätzlich! Schon aus Gründen der Selbstdisziplin. Wer einmal mauschelt, der mauschelt öfters !

siehe auch die "unsägliche" Dikussion:

http://www.abapforum.com/forum/viewtopi ... ight=#5293

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
um es klarzustellen:
ich plädiere auch dafür, Daten nach Möglichkeit über die offizielle Schiene zu ändern.

Manchmal ist es aber gerade bei Korrekturen an fehlerhaften Daten garnicht möglich, den korrekten Weg einzuschlagen...
(wobei man natürlich auch die Frage stellen sollte, wie denn die fehlerhaften Daten entstanden sind...)
Gruß
Ereglam


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

Beitrag von Thomas R. (Expert / 755 / 78 / 34 ) »
Hallo,
meistens hilft bei Fehlern aber eine offizielle OSS-Meldung.
Dann liegt der schwarze Peter bei SAP.
MfG
Thomas R.

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

(Die brutalste Methode ist doch wohl:
UPDATE dbtab set feld="xxx" where dings = "bums".
Da kann ich mir jegliche Selects und Tabellen sparen :evil: ).

Aber jetzt nochmal etwas gebremster :) :

Irgendwie muß ja der unerwünschte Feldwert hineingekommen sein. Und genauso kommt er auch wieder weg.

Wenn man also die Belegnummern/Positionsnummern habt, gibt es doch sicherlich eine Möglichkeit nach dem Selekt mit diesen Werten einen "kleinen" BATCH-Input, einen BAPI-Aufruf oder evtl. sogar eine Massenänderung durchzuführen.

Gruß
babap

Seite 1 von 1

Vergleichbare Themen

1
Antw.
1221
Views
Wie änder ich den Titel eines Programms?
von Gast » 18.08.2005 17:57 • Verfasst in ABAP® Core
3
Antw.
5449
Views
Aufbauregeln des Feldes Zuordnung
von Netterhesse » 17.03.2009 12:38 • Verfasst in Financials
1
Antw.
2417
Views
Konfiguration des Feldes Ename
von PseudoReal » 31.10.2006 10:15 • Verfasst in Human Resources
1
Antw.
1350
Views
Anbindung eines Feldes an Schhilfe
von dyv » 14.10.2014 17:44 • Verfasst in ABAP® für Anfänger
3
Antw.
6098
Views
Gesamtsumme eines Feldes / Interne Tabelle
von isp » 31.10.2012 17:25 • 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 11 Stunden von Bright4.5 3 / 1485
Regex in where
vor 13 Stunden von tar 6 / 158

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 11 Stunden von Bright4.5 3 / 1485
Regex in where
vor 13 Stunden von tar 6 / 158

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