* oracle에서 UPDATE&INSERT&DELETE의 MULTIPLE OPERATION을 지원하기 위한 DML 구문.
* 소스테이블에서 추출한 데이터를 타겟 테이블에 트랜잭션을 처리하는 형태로 동작함
구성요소 | 내용 |
---|---|
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
- 강좌 URL : http://www.gurubee.net/lecture/3791
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.