Update de tabla obteniedo valores de otra tabla

Jos?ntonio
17 de Junio del 2005
Hola,

Tengo la versión 9.2.0.1. de Oracle. Para hacer un update de una tabla obteniendo los valores de otra tabla, lo hago:

UPDATE tabla_a a
SET a.c1 = (SELECT b.c3
FROM tabla_b b
WHERE a.c2 = b.c4)
WHERE EXISTS (SELECT NULL
FROM tabla_b b
WHERE a.c2 = b.c4)

Pero si quiero actualizar varios campos, tengo que hacer las mismas subconsultas, o con un cursor.

Hay alguna otra forma de hacerlo??

Saludos y gracias

Rodolfo Reyes
17 de Junio del 2005
Tendrias que hacer algo mas o menos así

update tabla a ser (dato1,dato2,dato3) =
(
select dat1,dat2,dat3
from tabla2 b
where b.dat1 = a.dato1....
)
/


Adrian
17 de Junio del 2005
Puedes hacer un update de un join, sería más o menos así:

update
(
select a.c1, b.c3, a.c3, b.c7
from tabla_a a, tabla_b b
where tabla_a.c2 = tabla_b.c4
)
set a.c1 = b.c3, a.c3 = b.c7
where loquesea


jc3000
17 de Junio del 2005
¿ Por que no despiertas,majete ?