Sentencia Merge en Oracle
La sentencia merge nos permite realizar una actualización de una tabla, de tal modo que si no existe alguno de los registros a actualizar realiza también la inserción de esos nuevos registros. La sintaxis es la siguiente: MERGE INTO tabla USING (otra_tabla, vista.....) ON ( condiciñon de union) WHEN MATCHED THEN UPDATE SET columna1tabla = un valor, columna2tabla = otro valor WHEN NOT MATCHED THEN INSERT (columna1tabla,columna2tabla) VALUES (unvalor, otrovalor) Un ejemplo en el que tenemos dos tablas prueba1 y prueba2, y queremos realizar un merge de prueba1 en prueba2. Esto significa que los valores de prueba2 van a ser actualizados con los valores de prueba1, y en el caso de que no exista el registro se insertan en prueba2. MERGE INTO prueba2 USING (prueba1) ON (prueba2.id1 = prueba1.id1) WHEN MATCHED THEN UPDATE SET prueba2.id2 = prueba1.id2 WHEN NOT MATCHED THEN INSERT (id1,id2) VALUES (prueba1.id1, prueba1.id2)