MERGE INTO
MERGE INTO 문은 지정된 조건에 따라 원본 테이블의 데이터를 대상 테이블로 병합할 수 있는 SQL 명령이다
이 명령문은 UPDATE 및 INSERT 명령의 기능을 단일 명령문으로 결합한다 .
[예시]
MERGE INTO target_table
USING source_table
ON join_condition
WHEN MATCHED THEN
UPDATE SET target_column = source_column
WHEN NOT MATCHED THEN
INSERT (target_column1, target_column2, ...)
VALUES (source_column1, source_column2, ...)
[해설]
MERGE INTO 여기서 "target_table"은 데이터를 병합하려는 테이블이고
USING "source_table"은 병합하려는 데이터가 포함된 테이블 이다
만약 into절과 동일 테이블이라면 DUAL 사용을 사용한다 ( USING DUAL )
MERGE INTO 문은 "USING" 및 "ON" 절을 사용하여 소스 및 조인 조건을 각각 지정해야 합니다.
ON "join_condition"은 원본 테이블의 데이터를 대상 테이블과 병합하는 방법을 결정하는 조건을 지정합니다.
WHEN MATCHED THEN 절은 대상 테이블과 소스 테이블 모두에서 일치하는 행이 발견될 때 수행해야 하는 조치를 지정합니다
이 경우 "UPDATE SET" 절을 사용하여 지정된 대상 열의 값을 원본 테이블의 해당 값으로 업데이트합니다.
WHEN NOT MATCHED THEN 절은 대상 테이블에서 일치하는 행을 찾을 수 없을 때 취해야 할 조치를 지정합니다.
INSERT 원본 테이블의 값을 사용하여 대상 테이블에 새 행을 삽입하는 데 사용됩니다.
MERGE INTO 문은 서로 다른 두 테이블 또는 데이터베이스의 데이터를 동기화해야 하는 경우와 같이 데이터 통합 시나리오에서 자주 사용된다 스테이징 테이블의 최신 데이터로 대상 테이블을 주기적으로 새로 고쳐야 하는 데이터 웨어하우징 환경에서도 유용하세 사용할 수 있다
'IT > ORACLE' 카테고리의 다른 글
[ORACLE] ROW_NUMBER() 중복되는데이터는 하나로 처리하기 (그룹별로 순번을 지정하여 하나의 행만 추출) (0) | 2023.06.30 |
---|---|
[ORALCE] NVL2 으로 NULL 값 처리하기 (0) | 2023.05.16 |
[ORACLE] WHERE 1=1는 왜 사용하는거야? (0) | 2023.05.16 |
오라클 원하는 위치의 문자열만 추출하기 SUBSTR 함수 사용하기 (0) | 2023.05.08 |
[ORACLE] NVL 함수 사용법 - null값을 기본값으로 대체 하기 (0) | 2023.05.08 |