Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/07/2011, 13:40
Pepillo_r
 
Fecha de Ingreso: julio-2011
Mensajes: 2
Antigüedad: 12 años, 8 meses
Puntos: 0
Pregunta Sentencia UPDATE con dos tablas en Oracle 11gr2

Hola colegas, soy nuevo en el foro y en las bases de datos y requiero de su ayuda, espero me puedan echar la mano.
Platico el problema:
En oracle tengo dos tablas con tres campos en comun y cuando hago una selección con la sentencia

Código SQL:
Ver original
  1. SELECT tab1.c1, tab1.c2, tab1.c3
  2. FROM tab1, tab2
  3. WHERE tab1.c1 = tab2.c1
  4.     AND tab1.c2 = tab2.c2
  5.     AND tab1.c3 = tab2.c3;

esto me devuelve los registros que requiero; ahora, lo que quiero hacer es actualizar la tabla tab1 en la columna c4, de tal forma que en c4 me ponga la letra "A" en los registros seleccionados.
Mi idea de la sentencia con update es que sería muy similar a la sentencia select puesta al principio, por lo q la estructuré de la siguiente manera:

Código SQL:
Ver original
  1. UPDATE tab1
  2. SET c4 = 'A'
  3. WHERE tab1.c1 = tab2.c1
  4.     AND tab1.c2 = tab2.c2
  5.     AND tab1.c3 = tab2.c3;

al hacer esto, me manda el error
Código BASH:
Ver original
  1. ORA-00904: "tab2"."c3": identificador no válido

Despues traté de ingresarle un from de la siguiente manera:

Código SQL:
Ver original
  1. UPDATE tab1
  2. SET c4 = 'A'
  3. FROM tab1, tab2
  4. WHERE tab1.c1 = tab2.c1
  5.     AND tab1.c2 = tab2.c2
  6.     AND tab1.c3 = tab2.c3;
Pero me manda el error
Código SQL:
Ver original
  1. ORA-00933: comando SQL no terminado correctamente

En fin, como les comento, apenas empiezo en esta area y hasta el momento no he logrado dar con la solución de este problema, espero q me puedan ayudar.
Saludos

Última edición por gnzsoloyo; 16/12/2015 a las 18:28