Merge

배고픈 징징이 ㅣ 2023. 1. 27. 11:13

  • 두개의 쿼리를 하나로 합쳐준다.
  • 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#
    )

 

반응형

'Sql > - Oracle' 카테고리의 다른 글

PROCEDURE  (0) 2023.01.26