MERGE fue introducido con el estándar SQL1999 e implementado por
Oracle 9i. Versiones 10g proveen mejoras. MERGE ejecuta un UPDATE o un INSERT,
dependiendo de alguna condición. La actual versión de MERGE puede realizar también
DELETE.
Hay muchas ocasiones donde usted desea tomar un conjunto de datos e
integrarlos en una tabla existente. Si una fila en la tabla Source ya existe en
la tabla Target, es posible que usted desee solo actualizar la fila Target, o
puede desear remplazarla completamente. O es posible que usted desee dejar la fila
Target sin cambios. Si una fila en la tabla Source no existe en la tabla
Target, usted desea insertarla. El comando MERGE hace todo esto. El Merge pasa
a través de los datos de la tabla Source e intentando localizarlos en la tabla
Target. Si no lo encuentra, una fila puede ser insertada. Si es encontrada, la
fila puede ser actualizada. Desde 10g Merge puede hacer DELETE también. El resultado
final es una tabla destino mesclados con
los datos de la tabla Source.
Un Merge no hace nada que no pueda hacer con INSERT, UPDATE y DELETE,
pero con un solo paso puede realizar las tres.
Los datos fuente de una sentencia MERGE pueden ser una tabla o
cualquier subquery. La condición utilizada para encontrar las filas coincidentes
en la tabla Target es similar a la clausula WHERE. Las clausula que actualizan
o insertan filas son tan complejas como un INSERT y un UPDATE.
Comentarios
Publicar un comentario