Oracle 10: Update

Dr_Doom

Mitglied
Hallo ich muss seit Ewigkeiten mal wieder ein Update laufen lassen und stehe komplett auf der Leitung

Tabelle1
wert1
wert2
wert3
wert4
wert5


Tabelle2
wert1
wert2
wert3
wert4
wert5


Beide Tabelle haben eine identische Struktur, Tabelle 2 enthält in Wert3-5 Daten, die in Tabelle 1 fehlen. Also dachte ich

Code:
update tabelle1 t1 
set (t1.wert3, t1.wert4, t1.wert5) = 
(select t2.wert3, t2.wert4, t2.wert5
from tabelle2 t2 , tabelle1 t1 
where t2.wert1=t1.wert1 and t2.wert2=t1.wert2)

Ergebnis: ORA-01427: Unterabfrage für eine Zeile liefert mehr als eine Zeile

Ich stehe leider total auf dem Schlauch... :-(
 
Die Fehlermeldung ist doch klar. Der Schlüssel (wert1 und wert2) der Unterabfrage ist nicht eindeutig
select t2.wert3, t2.wert4, t2.wert5
from tabelle2 t2 , tabelle1 t1
where t2.wert1=t1.wert1 and t2.wert2=t1.wert2

Das liefert mehr als eine Zeile. Dann weiss Oracle nicht welche er nehmen muss.
Dieses Query darf nur eine Zeile liefern.
 
Aber der Schlüssel wert1 + wert2 ist nicht eindeutig. Ansonsten kähme diese Fehlermeldung nicht.
 
Zurück