- 두개의 쿼리를 하나로 합쳐준다.
- DUAL은 파라미터를 넘겨줄때 사용
DUAL대신 SELECT문이 들어갈 수 있다. - ON 절에 사용된 Column은 수정이 불가능하다.
MERGE INTO [TABLE]
USING [TABLE or DUAL] ON [조건]
WHEN MATCHED THEN
UPDATE SET
[UPDATE or DELETE QUERY]
WHEN NOT MATCHED THEN
[INSERT QUERY]
실제 사용 쿼리
MERGE INTO T_PRD_ECM
USING DUAL ON (PRD_DTL_MST_CD = #PRD_DTL_MST_CD#)
WHEN MATCHED THEN
UPDATE SET PRD_ECM_DISCOUNT = NVL(#PRD_ECM_DISCOUNT#, 0)
WHERE PRD_DTL_MST_CD = #PRD_MST_CD#
WHEN NOT MATCHED THEN
INSERT(
PRD_ECM_IDX
, PRD_DTL_MST_CD
)VALUES(
SEQ_PRD_ECM_IDX.NEXTVAL
, #PRD_MST_CD#
)
반응형