Update Datenbanktabelle

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

Re: Update Datenbanktabelle

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Also:

Modify zcd_diese_Tabelle_soll_geupdatet_werden from gt_tab1.

einfach so, oder?

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


Re: Update Datenbanktabelle

Beitrag von a-dead-trousers (Top Expert / 4285 / 214 / 1141 ) »

Code: Alles auswählen.

Modify zcd_diese_Tabelle_soll_geupdatet_werden from table gt_tab1.
Aber die Struktur der internen Tabelle und der Datenbanktabelle muss übereinstimmen:

Code: Alles auswählen.

DATA: gt_tab1 TYPE STANDARD TABLE OF zcd_diese_Tabelle_soll_geupdatet_werden WITH DEFAULT KEY.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Update Datenbanktabelle

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Muss das eine STANDARD-Tabelle sein?


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Update Datenbanktabelle

Beitrag von a-dead-trousers (Top Expert / 4285 / 214 / 1141 ) »
ralf.wenzel hat geschrieben:Muss das eine STANDARD-Tabelle sein?
Solange ich nicht weiß welche Felder in der DB die Schlüsselfelder sind, ja. :wink:
Ein SORTED TABLE macht IMHO keinen Sinn wenn man die TABLE_LINE als Key angeben muss.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Update Datenbanktabelle

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
hmmm ohje :(( jetzt hab ich aus Versehen die ganze Datenbanktabelle gelöscht :(

Wie kann man denn eine wieder erzeugen?? die die gleichen Spalten wie davor hatte??

Re: Update Datenbanktabelle

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
wenn ich jetzt in der se16 auf die Datenbanktabelle gehe, kommt keine Einträge verfügbar..... shit.... wie kann ich meine Einträge aus der internen Tabelle dort wieder reinschreiben????

Re: Update Datenbanktabelle

Beitrag von a-dead-trousers (Top Expert / 4285 / 214 / 1141 ) »
INSERT oder MODIFY
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Update Datenbanktabelle

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
LOOP at gt_ausgabe INTO gs_ausgabe.
insert into ZCD_Datenbanktabelle values gs_ausgabe.
ENDLOOP.

ich bekomm hier immer die Fehlermeldung:

Der Typ der Datenbanktabelle und des Arbeitsbereichs (bzw. der internen Tabelle) "GS_AUSGABE" sind nicht Unicode-konvertibel.

Re: Update Datenbanktabelle

Beitrag von DeathAndPain (Top Expert / 1797 / 214 / 396 ) »
L0w-RiDer hat geschrieben:
DeathAndPain hat geschrieben:Sei mir nicht böse, aber dieser Fall zeigt doch recht deutlich, dass Dein derzeitiges Verständnis relationaler Tabellen und Datenbanken gegen Null geht. Ich kann Dir nur dringend empfehlen, Dir da erst mal die wesentlichen Grundlagen anzulesen. Bis dahin wird es Dir noch nicht mal gelingen, sinnvolle SELECTs zu bauen, geschweige denn UPDATEs. Und wie dieses Beispiel zeigt, kannst Du mit einem einzigen UPDATE-Befehl den Inhalt einer ganzen Datenbanktabelle vernichten.
hmmm ohje :(( jetzt hab ich aus Versehen die ganze Datenbanktabelle gelöscht :(
Das meinte ich.

Wir würden Dir ja gerne helfen, L0w-RiDer, aber das zentrale Problem, mit dem wir hier alle in diesem Thread kämpfen, besteht darin, dass Du uns unvollständige Code-Fragmente mit zu wenig Informationen lieferst. Wenn Du hier Hilfe zu diesem Problem bekommen möchtest, die Dich wirklich weiterbringt, dann mach doch bitte mal folgendes, auch wenn es etwas Arbeit bedeutet:

o Geh in die SE11, dort in die Tabelle ZCD_Datenbanktabelle, mach einen Screenshot, uploade ihn zu https://de.imgbb.com/ (oder einem vergleichbaren Dienst Deiner Wahl) und füge den BB-Code-Link, den der Dienst Dir generiert, hier im Thread ein, damit wir mal genau sehen können, wie diese Tabelle überhaupt definiert ist.

o Schreib hier im Thread nicht nur Deinen LOOP, der nicht wunschgemäß funktioniert, sondern zu allen darin verwendeten Variablen auch den zugehörigen DATA-Befehl, und soweit in den DATA-Befehlen verwendet, auch jeden zugehörigen TYPES-Befehl.

Wenn Du uns das bietest, dann haben wir bedeutend bessere Möglichkeiten, Dir weiterzuhelfen und können Dir auch funktionierende, compilierbare Beispielcodes für Deine Tabelle bieten.

Aber mit den rasch hingeschmierten, untypisierten Dreizeilerfragmenten, die Du uns bisher gegeben hast, wird das leider nix.

Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
ewx


Re: Update Datenbanktabelle

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
okay ich habs wieder hinbekommen :D

Re: Update Datenbanktabelle

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Weiß denn jemand vielleicht noch wie man direkt die Einträge in die Datenbanktabelle schreibt ?

Bei Modify schreibt es mir auch nur in die Datenbanktabelle die Einträge rein, die es zwar gefunden hat, aber leider nicht genauso die Datenbanktabelle wie ich sie in der internen Tabelle habe. Also es bleiben die Zeilen die davor schon da waren bestehen...

Re: Update Datenbanktabelle

Beitrag von deejey (Specialist / 419 / 128 / 45 ) »
Dann machst du irgendwas falsch: MODIFY ist nichts anderes als "wenn vorhanden dann mach UPDATE, ansonsten mach INSERT"

MODIFY DB-Tabelle FROM TABLE itab

Re: Update Datenbanktabelle

Beitrag von DeathAndPain (Top Expert / 1797 / 214 / 396 ) »
L0w-RiDer hat geschrieben:Bei Modify schreibt es mir auch nur in die Datenbanktabelle die Einträge rein, die es zwar gefunden hat, aber leider nicht genauso die Datenbanktabelle wie ich sie in der internen Tabelle habe. Also es bleiben die Zeilen die davor schon da waren bestehen...
Ein klares Zeichen dafür, dass der Primärschlüssel Deiner Tabelle falsch gewählt ist (Stichwort: "Kenntnisse über relationale Datenbanken"). Und wir werden Dir damit auch weiterhin keine für Dich wirklich verwertbaren Tipps geben können, da Du weiterhin zu faul bist, uns ausreichende Informationen zu Deinem Programm und Deiner Tabelle zu geben.

Re: Update Datenbanktabelle

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Okay, ich hätte jetzt nur noch eine abschließende Frage, dann würde es passen.

Ich hab sonst soweit alles hinbekommen ... vielen Dank schon mal :).

loop at gt_final into gs_final.
delete from ZCD_Tabell1 where xx <> gs_final-xx
and yyyy <> gs_final-yyyy.
ENDLOOP.

ich möchte gerne die Zeilen aus der Datenbanktabelle löschen bei denen die Einträge aus der Datenbanktabelle XX und YYYY nicht mit den Einträgen aus der internen Tabelle übereinstimmen.

So wie ich es gerade habe, funktioniert es leider nicht. Wenn ich bei Where XX und YYYY angebe, dann sollten dies die Werte aus der Datenbanktabelle ZCD_Tabell1 sein, oder? Ich möchte vergleiche ob es Werte in der Datenbanktabelle ZCD_Tabell1 (XX oder YYYY [Datenbankfelder/Primärschlüssel] ) gibt, die nicht in der internen Tabelle gt_final vorkommen. Falls dies der Fall ist, dann sollen diese Zeilen gelöscht werden.

Vielen Dank.

Re: Update Datenbanktabelle

Beitrag von a-dead-trousers (Top Expert / 4285 / 214 / 1141 ) »
Dafür musst du zuerst ALLE Datensätze aus der Datenbank einlesen, mit deiner internen Tabelle vergleichen und dann jene Löschen die NICHT in der internen Tabelle vorkommen.

Pseudocode:
SELECT * FROM datenbanktabelle INTO lt_datenbank.
LOOP AT lt_datenbank ASSIGNING <ls_database>.
READ lt_tabelle WITH KEY x = <ls_database>-x ...
IF sy-subrc NE 0.
DELETE datenbanktabelle FROM <ls_database>.
ENDIF.
ENDLOOP.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
L0w-RiDer

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Vergleichbare Themen

5
Antw.
16439
Views
Datenbanktabelle Update
von km216 » 06.04.2011 10:29 • Verfasst in ABAP® für Anfänger
4
Antw.
3267
Views
update Datenbanktabelle
von LittleT » 10.09.2007 09:47 • Verfasst in ABAP® für Anfänger
11
Antw.
572
Views
UPDATE Datenbanktabelle
von ABAPlerv » 28.03.2022 16:34 • Verfasst in ABAP® für Anfänger
9
Antw.
8621
Views
DBTab Update from Table oder in Loop mit "Update Set" Oder ?
von RIG » 09.03.2018 11:27 • Verfasst in ABAP® Core
6
Antw.
1093
Views
Datenbanktabelle
von HH_ABAP » 29.03.2019 15:10 • Verfasst in ABAP® für Anfänger

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.