Ver Mensaje Individual
  #6 (permalink)  
Antiguo 18/06/2008, 09:41
OscarH
 
Fecha de Ingreso: junio-2008
Ubicación: D.F.
Mensajes: 62
Antigüedad: 16 años, 6 meses
Puntos: 1
Respuesta: UPDATE de una tabla desde una subconsulta

Que Tal,

Obviamente tu problema no es por el ";" ya que tienes el error que te marca al al ejecutarlo y para esto necesitaste colocar el ";" o el "/".

Más bien creo que tu problema puede ser por la parte de la versión de Oracle que estas usando. El Merge salió con la versión 9i de Oracle, pero en esa versión es obligatorio que pongas la opcion WHEN NOT MATCHED THEN y después tu orden Insert.

Ya en la Versión Oracle 10g, es posible ejecutar un Merge solamente para un Update.

Entonces si tu versión es 9i Tendrías que hacer tu Update de la Siguiente manera.

Update a
SET (a.a4,a.a5) = (SELECT b.b4, b.b5
FROM b
WHERE a.a1 = b.b1
AND a.a2 = b.b2
AND a.a3 = b.b3)
WHERE EXISTS (SELECT 1
FROM b
WHERE a.a1 = b.b1
AND a.a2 = b.b2
AND a.a3 = b.b3)
/

Espero que esto te sea de Utilidad.

Saludos.