A menos que su SELECT
la subconsulta devuelve una sola fila, su UPDATE
la declaración debería fallar con el error
ORA-01427: single-row subquery returns more than one row
Generalmente, cuando tiene una actualización correlacionada, necesita alguna condición que relacione filas en la tabla exterior T1
a filas en la subconsulta interna para garantizar que la subconsulta devuelva una sola fila. Eso generalmente se vería algo así como
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);
Finalmente, esta UPDATE
declaración está actualizando cada fila en T1
. ¿Es eso lo que pretendes? ¿O solo desea actualizar las filas donde, por ejemplo, encuentra una coincidencia en su subconsulta?