개발/오라클
[Oracle] 오라클 MERGE 구문 사용 예제
Jxdn
2020. 3. 31. 15:45
반응형
안녕하세요.
오늘은 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
)
감사합니다!
반응형