Ich habe eine Tabelle A hat Spalte (ID, Feld_1, Feld_2) und eine andere Tabelle B hat Spalte (ID, Feld_2)
Jetzt möchte ich Tabelle B mit A zusammenführen, das heißt, ich möchte Feld_2 in Tabelle A auf den Wert von Tabelle B aktualisieren. Wie implementiere ich das? Übrigens benutze ich Orakel
Vielen Dank
Antworten:
Ein alternativer Ansatz für die zusammengehörige Unterabfrage (vorgeschlagen von Kerri) wäre die Verwendung der MERGE-Anweisung, die möglicherweise effizienter ist als die Unterauswahl (die nur anhand des Ausführungsplans beider Anweisungen überprüft werden kann).
quelle
MERGE
Anweisung besteht darin, dass Sie die Spalte, für die sie verknüpft ist, nicht aktualisieren können, dh Sie können die in derON
Klausel verwendete Spalte nicht aktualisieren .ORA-01555: snapshot too old
Sie sind sich nicht ganz sicher, wonach Sie suchen, aber dies sollte einmalig oder kontinuierlich über einen geplanten Job funktionieren:
Jetzt wird jedes Mal, wenn das oben genannte ausgeführt wird, dies für alle Zeilen in der Tabelle durchgeführt. Wenn Sie dies die ganze Zeit tun müssen, würde ich etwas anderes vorschlagen, aber für einen einmaligen oder sehr kleinen Tisch sollte es ausreichen.
quelle
Ich habe dies erfolgreich mit einer Tabelle in Benutzer1 aus einer anderen Tabelle in Benutzer2 durchgeführt:
quelle
Sie können einen Trigger für Tabelle B erstellen, der Tabelle A jedes Mal aktualisiert, wenn Feld_2 für Tabelle B aktualisiert wird. Weitere Informationen zum Erstellen von Triggern finden Sie hier: http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14251/adfns_triggers.htm#BABCIBBJ
quelle