viernes, 17 de diciembre de 2010

Uso del MERGE para INSERT o UPDATE

El MERGE sirve para realizar el update y el insert en una misma sentencia cumpliendose entre 2 tablas una cierta condicion que se declara en el ON de la sentencia MERGE.

--Primero creo una tabla.
CREATE TABLE test1 AS
SELECT owner, object_id , object_name
FROM all_objects
WHERE 1=2; --1=2 es para que a la tabla la cree vacia.

--Aca viene el uso del MERGE.
MERGE INTO test1 a
USING all_objects b
ON (a.object_id = b.object_id)
WHEN MATCHED THEN
UPDATE SET a.object_name = b.object_name
WHEN NOT MATCHED THEN
INSERT (owner, object_id, object_name)
VALUES (b.owner, b.object_id, b.object_name);

En caso de que macheen a.object_id = b.object_id realiza solo el update, sino machea entonces realiza el Insert.

No hay comentarios:

Publicar un comentario