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?