Zum Inhalt springen

Oracle - PLSQL - Tabellenwerte ändern


Martin1968

Empfohlene Beiträge

Moin!

Ich habe mich bei der Ertellung meines Datenmodells vertan und muss nun Werte einer BEstimmten Tabelle umbiegen. Da ich den neuen Wert einigermaßen aufwändig ermitteln muss reicht wohl kein einfaches update.

Jetzt denke ich über ein Procedure nach, die das für mich erledigt. Davon habe ich schon einige geschrieben, allerdings eher für spezielle Auswertungen und nicht zur Datenmanipulation.

Ich stelle mir das so vor, dass ich die Zeilen der Tabelle einzeln durchgehe, mir den alten Wert auslese, den neuen "errechne" und dann zurückschreibe.

Mit Schleifen habe ich nat. auch gearbeitet, aber der Zeilenweise Zugriff auf die Tabellenwerte macht mir Kopfzerbrehcen - geht das mit dem "CURSER" ?

Wäre toll, wenn mir jemand helfen könnte.

Martin

Link zu diesem Kommentar
Auf anderen Seiten teilen

Guten Morgen Dr. Dimitri,

ich habe natürlich auch erst an ein Update gedacht, aber das überfordert mich anscheinend :-)

Folgendes select listet den zu ändernden Wert und den Wert der neu in die Spalter Att_value gehört:

select av.att_value, kst.obj_id

from attribute_values av,

object kst

where av.att_id = 81662 and av.att_value in

(select kst.gr_id from object kst where kst.cl_id = 10112 and kst.gr_class = 10001 and kst.gr_id = att_value)

and kst.cl_id = 10112 and kst.gr_id = av.att_value

Mein Problem ist, dass ich nicht weiss, wie ich den Join zwischen beiden selects innerhalb des Update-Statements verarbeite.

Vielleicht kann mir hemand von Euch auf die Sprünge helfen ?

Martin

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

das nennt sich correlated subquery:

UPDATE tabelle a 

   SET (spalte1,spalte2)=(select spalteA,spalteB 

  FROM tabelle b 

 WHERE [b]a.id=b.id[/b] --Hier werden die beiden Mengen eindeutig miteinander verknüpft

    AND ...)

WHERE a.spalteXY=... --Hier evtl. noch die zu berücksichtigende Menge einschränken

Dim

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

das nennt sich correlated subquery:

UPDATE tabelle a 

   SET (spalte1,spalte2)=(select spalteA,spalteB 

  FROM tabelle b 

 WHERE [b]a.id=b.id[/b] --Hier werden die beiden Mengen eindeutig miteinander verknüpft

    AND ...)

WHERE a.spalteXY=... --Hier evtl. noch die zu berücksichtigende Menge einschränken

Dim

Muss ich jetzt erst mal genauer anschauen, aber VIELEN DANK!:):uli

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...