A meno che il tuo SELECT
subquery restituisce una singola riga, il tuo UPDATE
l'istruzione dovrebbe fallire con l'errore
ORA-01427: single-row subquery returns more than one row
In genere, poiché hai un aggiornamento correlato, hai bisogno di alcune condizioni che mettano in relazione le righe nella tabella esterna T1
alle righe nella sottoquery interna per garantire che la sottoquery restituisca una singola riga. In genere assomiglierebbe a qualcosa di simile a
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);
Infine, questo UPDATE
l'istruzione sta aggiornando ogni riga in T1
. È questo che intendi? Oppure vuoi aggiornare solo le righe in cui, ad esempio, trovi una corrispondenza nella tua sottoquery?