[Oracle] MERGE INTO


이미 존재하면 데이터를 UPDATE 하고, 없는 경우는 INSERT를 해야하는 경우가 발생한다. 특히 Migration 작업을 할 때..

그런 경우 MERGE INTO를 사용하면 편하다.


MERGE INTO Table_Name A

USING Table || View || SubQuery B

ON ( A = B ) -- Key값으로 반드시 조인

WHEN MATCHED THEN INSERT || UPDATE || DELETE

WHEN NOT MATCHED THEN INSERT || UPDATE || DELETE






'IT Info > Oracle' 카테고리의 다른 글

[Oracle] Trigger  (0) 2019.12.02
[Oracle] 데이터 중복 제거 distinct, group by  (0) 2019.11.26
[Oracle] INSERT, UPDATE, DELETE  (0) 2019.11.20
[Oracle] View Table  (0) 2019.11.16
[Oracle] ORA-00904 : invalid identifier  (0) 2019.11.14

[ORACLE] ORA-30926 : 원본 테이블의 고정 행 집합을 가져올 수 없습니다.


MERGE INTO 문 사용 시, 발생


MERGE INTO Table_Name A

USING Table || View || SubQuery B

ON ( A = B )

WHEN MATCHED THEN INSERT || UPDATE || DELETE

WHEN NOT MATCHED THEN INSERT || UPDATE || DELETE

 

USING 을 통해 가져오는 Query에서 중복값이 2개이상 나오는 경우 발생




해결 TIP


USING에 사용되는 Qeury에서


SELECT Count(*), ~

FROM ~

GROUP BY ~

HAVING Count(*) > 1


을 이용해서 중복데이터 찾아서 중복되지 않도록 조치 후 진행해야 함.




'IT Info > Oracle' 카테고리의 다른 글

[Oracle] View Table  (0) 2019.11.16
[Oracle] ORA-00904 : invalid identifier  (0) 2019.11.14
[Oracle] Delete 데이터 복구  (0) 2019.11.13
[Oracle] Single Quotation(홀따옴표) ' Insert  (0) 2019.11.12
[Oracle] DB Link 확인  (0) 2019.10.29

+ Recent posts