다음은 Oracle에서 사용하는 두 테이블의 전체 데이터와 MERGE 문이다. 실행 결과에 대한 설명으로 옳은 것은?
보기
STOCK_T
| ITEM_ID | QTY |
|---|---|
| 101 | 0 |
| 102 | 6 |
STOCK_S
| ITEM_ID | QTY |
|---|---|
| 101 | 4 |
| 102 | 0 |
| 103 | 0 |
MERGE INTO STOCK_T T
USING STOCK_S S ON (T.ITEM_ID = S.ITEM_ID)
WHEN MATCHED THEN
UPDATE SET T.QTY = S.QTY
DELETE WHERE (T.QTY = 0)
WHEN NOT MATCHED THEN
INSERT (ITEM_ID, QTY) VALUES (S.ITEM_ID, S.QTY);
- 1101번 행은 변경 전 수량이 0이므로 삭제된다.
- 2두 분기 절을 함께 사용했으므로 실행 오류가 발생한다.
- 3102번 행은 갱신 후 삭제되고, 103번 행은 삽입된다.
- 4103번 행은 삽입된 직후 DELETE 조건에 따라 삭제된다.
꿈라CBT