* MERGE
: 테이블에서 데이터를 다룰때 SELECT와 UPDATE를 조건에 따라 한번에 진행가능한 함수
MERGE INTO table_name alias USING (table | view | subquery) alias ON (join condition) WHEN MATCHED THEN UPDATE SET col1 = val1[, ...] WHEN NOT MATCHED THEN INSERT (column lists) VALUES (values);
ex)
1. 테이블 2개를 사용할 경우
MERGE INTO COPY_MEMBER A USING MEMBER B ON A.MEMBER_NO = B.MEMBER_NO WHEN MATCHED THEN /* 조건에 해당할 경우에는 update 진행 */ UPDATE SET A.MEMBER_ID = B.MEMBER_ID ,A.MEMBER_PHONE = B.MEMBER_PHONE , ... WHEN NOT MATCHED THEN /* 조건에 해당하지 않을 경우에는 insert 진행 */ INSERT(A.MEMBER_ID, A.MEMBER_PHONE, ...) VALUES(B.MEMBER_ID, B.MEMBER_PHONE, ...);
2. 테이블 1개만 사용할 경우
MERGE INTO COPY_MEMBER USING DUAL /* DUAL을 이용 */ ON MEMBER_NO = '20180712_0001' WHEN MATCHED THEN /* 조건에 해당할 경우에는 update 진행 */ UPDATE SET MEMBER_ID = 'testId' ,MEMBER_PHONE = '010-1234-5678' , ... WHEN NOT MATCHED THEN /* 조건에 해당하지 않을 경우에는 insert 진행 */ INSERT(MEMBER_ID, MEMBER_PHONE, ...) VALUES('testId', '010-1234-5678' ...);
'Oracle' 카테고리의 다른 글
[Oracle] DECODE 함수 (0) | 2018.05.09 |
---|---|
[Oracle] 기본 명령어 정리 (0) | 2018.04.16 |
[Oracle] Database 11g Express Edition 설치 후 셋팅 (0) | 2018.04.16 |