없으면 INSERT 하는 경우 사용.
*** 문법 ***
MERGE INTO [ schema. ] { table | view } [ t_alias ] USING { [ schema. ] { table | view } | subquery } [ t_alias ] ON ( condition )WHEN MATCHED THENUPDATE SET column = { expr | DEFAULT } [, column = { expr | DEFAULT } ]...[ DELETE where_clause ]WHEN NOT MATCHED THENINSERT [ (column [, column ]...) ]VALUES ({ expr [, expr ]... | DEFAULT }) - - INTO : DATA가 UPDATE되거나 INSERT 될 테이블
- - USING : 비교할 SOURCE 테이블 혹은 서브쿼리. INTO절의 테이블과 동일하거나 다를 수 있음.
- - ON : UPDATE나 INSERT를 하게 될 조건. 해당 조건을 만족하는 DATA가 있으면 WHEN MATCHED 절 실행
- , 없으면 WHEN NOT MATCHED 절 실행.
- - WHEN MATCHED : ON 조건절이 TRUE인 ROW에 수행 할 내용. UPDATE, DELETE포함 될 수 있음.
- - WHEN NOT MATCHED : ON 조건절에 맞는 ROW가 없을 때 수행할 내용. INSERT
*** 예제 ***
MERGE INTO USER_INFO U
USING DUAL
ON (U.USER_ID = 'abcde')
WHEN MATCHED THEN
UPDATE SET USER_NM = 'name'
, USE_YN = 'Y'
WHEN NOT MATCHED THEN
INSERT (USER_ID, USER_NM, USE_YN)
VALUES ('abcde','name', 'Y')