본문 바로가기
개발/오라클

[Oracle] 오라클 MERGE 구문 사용 예제

by Jxdn 2020. 3. 31.
반응형

안녕하세요.

오늘은 MERGE 구문을 살펴볼겁니다.

MERGE 구문은 시스템에서 INSERT, UPDATE 를 한번에 사용하게 해주는 구문이며,

DB에서 INSERT와 UPDATE를 구분해주므로 소스에서 이 데이터가 INSERT인지 UPDATE 인지 구분할 필요가 없어 소스의 가독성을 높여줍니다.

즉, 개발자는 비지니스 로직에만 집중할 수 있도록 도와 줍니다.

이해하기 쉽도록 이미지로 설명을 하였습니다. 아래 이미지 참고하시면 됩니다.

소스는 아래쪽에 있습니다.

<이미지 설명>

<소스>

MERGE INTO EMPLOYEE C --INSERT, UPDATE 할 기준 테이블
USING
(
      SELECT USERNO
           , USERNAME
           , ADDRESS
           , PHONE
       FROM EMPLOYEE_TEMP
      WHERE INPUT_DATE = '20191105'
) N 
ON ( C.USERNO = N.USERNO) --INSERT 할지, UPDATE 할지 비교하는 구문입니다.
WHEN MATCHED THEN -- C테이블에 N쿼리에서 조회한 USERNO가 존재하면
    --UPDATE 수행
	UPDATE 
	SET C.USERNAME = N.USERNAME 
	  , C.ADDRESS  = N.ADDRESS
	  , C.PHONE    = N.PHONE
WHEN NOT MATCHED THEN -- C테이블에 N쿼리에서 조회한 USERNO가 존재하지 않는다면 
    --INSERT 수행
	INSERT ( USERNO
	       , USERNAME
	       , ADDRESS
	       , PHONE
	       )
	 VALUES (
		 N.USERNO
	       , N.USERNAME
	       , N.ADDRESS
	       , N.PHONE
	 )

감사합니다!

반응형

댓글