Oracle MERGE INTO (Upsert) 구문
2013. 10. 31. 17:43ㆍDatabase/ORACLE
반응형
oracle merge into 성능 알아보자 .
Oracle 9 버전 이상에서 가능합니다.
IF 문이라고 생각하면된다.(기존 ex : IF 뭐뭐 = true THEN ELSE END IF;)
true 이면 Update set , false 일 경우 Insert into 가 실행이 된다.
이건 머지 하는분들은 ? 밑에껄 보고 MERGE INTO 에 대한 구문을 참고 바란다. ㅋ
그리고 주의할점 WHEN MATCHED THEN 부분에서 UPDATE SET 까지만 써줘야함 테이블명까지쓰면 안됨
INSERT도 INSERT 만 써줘야한다 간혹 INTO 까지 쓰면 안됨
밑에 예제를 참고하세요~
MERGE INTO 테이블이름 USING 대상테이블 // 같은 테이블이면 DUAL 이라 써준다 ON 조건(조인조건) WHEN MATCHED THEN UPDATE SET column1=값1 column2=값2 column3=값3 WHEN NOT MATCHED THEN INSERT (column1, column2, column3) VALUES (값1,값2,값3) /*****************EX***************************/ MERGE INTO 학생 TT USING 과목 ST ON 조건(TT.일련번호 = TT.일련번호 AND ...........) WHEN MATCHED THEN UPDATE SET column1=값1 column2=값2 column3=값3 WHEN NOT MATCHED THEN INSERT (column1, column2, column3) VALUES (값1,값2,값3) /*****************EX***************************/ SELECT COUNT(1) INTO TMP_CNT FROM 학생 WHERE 학생일련번호= '1111'; MERGE INTO 학생 USING DUAL // 같은 테이블일경우 ON 조건(TMP_CNT = '1') WHEN MATCHED THEN UPDATE SET column1=값1 column2=값2 column3=값3 WHEN NOT MATCHED THEN INSERT (column1, column2, column3) VALUES (값1,값2,값3)
반응형
'Database > ORACLE' 카테고리의 다른 글
[오라클]Oracle Function (0) | 2014.01.21 |
---|---|
oracle start with connect by prior (1) | 2014.01.09 |
[Oracle TRIGGER]오라클 트리거 (0) | 2013.10.10 |
오라클 소수점 (0) | 2013.03.14 |
Oracle 내장함수 (0) | 2013.02.08 |