Monday, May 18, 2015

SQL merge statement


CREATE TABLE merge_employee
(
   id        NUMBER PRIMARY KEY,
   name      VARCHAR2 (200),
   address   VARCHAR2 (300)
);

CREATE TABLE merge_hrecord
(
   id_hr     NUMBER PRIMARY KEY,
   name      VARCHAR2 (200),
   address   VARCHAR2 (300)
);

INSERT INTO merge_employee
     VALUES (1, 'suneesh', 'XXX,Orchid Park');

INSERT INTO merge_hrecord
     VALUES (1, 'suneesh', '602,Orchid Park');

INSERT INTO merge_hrecord
     VALUES (2, 'suneesh1', '6021,Orchid Park');

COMMIT;

SELECT * FROM merge_hrecord;

SELECT *
  FROM MERGE_EMPLOYEE m;

MERGE INTO merge_employee e
     USING merge_hrecord h
        ON (e.id = h.id_hr)
WHEN MATCHED
THEN
   UPDATE SET e.address = h.address
WHEN NOT MATCHED
THEN
   INSERT     (id, address)
       VALUES (h.id_hr, h.address);

No comments: