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 |