* 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

+ Recent posts