Dev/Oracle

[Oracle] MERGE

흰바다제비 2022. 6. 24. 16:27
728x90
  1. MERGE UPDATE 문법
MERGE INTO TABLE_A A
USING TABLE_B B /* 서브쿼리 사용 가능 */
ON    (A.KEY = B.KEY) 
WHEN MATCHED THEN UPDATE 
  SET A.COLUMN1 = B.COLUMN1 ;

→ KEY 값이 일치하면 A의 COLUMN1 를 B.COLUMN1 값으로 UPDATE

 

 

2. MERGE INSERT 문법

MERGE INTO TABLE_A A
USING TABLE_B B 
ON    (A.KEY = B.KEY) 
WHEN NOT MATCHED THEN INSERT 
  (A.COLUMN1, A.COLUMN2, A.COLUMN3) 
  VALUES (B.COLUMN1, B.COLUMN2, B.COLUMN3) ;

→ KEY 값이 일치하지 않으면 해당하는 KEY의 B 테이블 DATA INSERT

 

 

3. MERGE UPDATE & INSERT 문법

MERGE INTO TABLE_A A
USING TABLE_B B 
ON    (A.KEY = B.KEY) 
WHEN MATCHED THEN UPDATE 
  SET A.COLUMN1 = B.COLUMN1
WHEN NOT MATCHED THEN INSERT 
  (A.COLUMN1, A.COLUMN2, A.COLUMN3) 
  VALUES (B.COLUMN1, B.COLUMN2, B.COLUMN3) ;

→ KEY 값이 일치하면 A의 COLUMN1 를 B.COLUMN1 값으로 UPDATE

일치하지 않으면 해당하는 KEY의 B 테이블 DATA INSERT

 

 

https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/MERGE.html#GUID-5692CCB7-24D9-4C0E-81A7-A22436DC968F

 

SQL Language Reference

 

docs.oracle.com

 

 

 

728x90