MERGE INTO 테이블명
USING DUAL ON( //조건절
컬럼1 = 값1 and 컬럼2 = 값2
)
WHEN MATCHED THEN
UPDATE SET 컬럼3 = 값3, 컬럼4 = 값4
WHEN NOT MATCHED THEN
INSERT
(
컬럼1,컬럼2,컬럼3,컬럼4
)
VALUES
(
값1,값2,값3,값4
)
- using 테이블명 : 대상의 테이블의 데이터와 비교한후 update 또는 insert할 대상이 되는 데이터의 source 테이블 또는 뷰를 지정
주의사항
Merge into 문은 기본적으로
where 조건절과 update 컬럼을 함께 사용할 수 없습니다.
즉 on (a.user_id = b.user_id)라고 user_id 컬럼을 조건절로 사용하였다면
update set user_id = xxxx라고 변경할 수 없습니다.
조건절을 변경하거나 update절을 변경하여야 합니다.
'소프트웨어 > Oracle' 카테고리의 다른 글
오라클 힌트 (0) | 2013.07.15 |
---|---|
오라클 페이징 쿼리 (0) | 2013.06.30 |
엔티티 도메인 추가 & Subject Area 생성 (0) | 2011.05.31 |
[erwin7.2] logical/physical model (0) | 2011.05.30 |
erwin7.2 클린삭제 가이드 (0) | 2011.05.30 |