h3.1. MERGE 구문의 사용목적
oracle에서 UPDATE&INSERT&DELETE의 MULTIPLE OPERATION을 지원하기 위한 DML 구문.
소스테이블에서 추출한 데이터를 타겟 테이블에 트랜잭션을 처리하는 형태로 동작함
h3.2. MERGE 구문의 구성요소
구성요소 | 내용 |
---|---|
INTO 절 | MERGE INTO merge_t1 tt |
USING 절 | USING ( SELECT c1, c2, c3 FROM MERGE_T2 WHERE c1 >= 99990 AND c1 <= 100090 ) st |
ON 절 | ON (tt.c1 = st.c1) WHEN MATCHED THEN UPDATE SET tt.c2 = st.c2, ttC3 = st.c3 DELETE WHERE (tt.c2 = 'A' ) WHEN NOT MATCHED THEN INSERT (tt.C1, tt.c2, tt.c3) VALUES (st.c1, st.c2, st.c3) WHERE (st.c2 = 'A'); |
ON (Target Table.Column = Source Table.Column) -> 조인조건
WHEN MATCHED THEN -> UPDATE or UPDATE&DELETE
WHEN NOT MATCHED THEN -> INSERT