Sé que no hay ninguna instrucción Update-Join en PL/SQL. Solía escribir T-SQL.Actualización PL/SQL ¿Unirse?
Tengo dos tablas.
Alex_Table1
---------------------------
PK VAL
---------------------------
1 Value1
2 Value2
3 Value3
Alex_Table2
---------------------------
PK VAL
---------------------------
1 Value1_2
3 Value3_2
Quiero actualizar VAL de Alex_Table2 a Alex_Table1 que se unen en la columna PK.
En T-SQL, que es sencilla
update t1 set t1.VAL = t2.VAL
from
Alex_Table1 t1
inner join Alex_Table2 t2 on t1.PK = t2.PK;
y el resultado es lo que esperaba
Alex_Table1
---------------------------
PK VAL
---------------------------
1 Value1_2
2 Value2
3 Value3_2
Mi pregunta es cómo hacerlo en PL/SQL? ¡Gracias!
actualización
Gracias Cybernate y ypercube me dio dos soluciones útiles. Ambos trabajan. Sin embargo, quiero que sepa el rendimiento entre estas dos declaraciones.
Mi tabla actual contiene 80,000 registros y solo 3,000 necesitan actualización.
MERGE
extracto toma 0,533 segundos.
UPDATE EXISTS
declaración se hace cargo de 3 minutos (yo no mido el tiempo real. Yo por terminada mi proceso después de 3 minutos.)
¡GUAU! <- esta es mi única expresión! ¡Gracias! ¡Esto es simple y directo! ¡Gracias! –
Tengo otra pregunta. En mi caso actual, la declaración de actualización solo involucraba dos tablas. ¿Puedo usar la instrucción MERGE si la declaración de actualización involucró más de dos tablas? –
Puede hacer cualquier consulta válida en lugar de Alex_Table2 en la consulta anterior. Consulte este enlace para obtener más información: http://psoug.org/reference/merge.html – Chandu