Tenzij uw SELECT subquery retourneert een enkele rij, uw UPDATE instructie zou moeten mislukken met de fout
ORA-01427: single-row subquery returns more than one row
Over het algemeen heb je, als je een gecorreleerde update hebt, een voorwaarde nodig die rijen in de buitenste tabel T1 met elkaar in verband brengt. naar rijen in de binnenste subquery om ervoor te zorgen dat de subquery één rij retourneert. Dat zou er over het algemeen ongeveer zo uitzien:
UPDATE table1 t1 SET (t1.col,t1.Output) = (
SELECT t2.col, t3.Output + t2.col
FROM tabl2 t3
LEFT JOIN table1 t2 ON t3.Join_Key = t2.Join_Key
WHERE t2.col is not NULL
AND t1.some_key = t2.some_key);
Eindelijk, deze UPDATE statement werkt elke rij in T1 bij . Is dat wat je van plan bent? Of wil je alleen de rijen updaten waar je bijvoorbeeld een match vindt in je subquery?