insert 하고자 하는 테이블
CREATE TABLE TMP_TABLE (
F1 VARCHAR2(20) PRIMARY KEY,
F2 VARCHAR2(20),
F3 VARCHAR2(20)
)
merge query
MERGE INTO TMP_TABLE A USING (
SELECT * FROM (
SELECT 1 SEQ, '0000000001' F1, 'TEST_NAME1' F2, 'TEST_VALUE1'F3 FROM DUAL UNION ALL
SELECT 2 SEQ, '0000000001' F1, 'TEST_NAME1' F2, 'TEST_VALUE1'F3 FROM DUAL UNION ALL
SELECT 3 SEQ, '0000000002' F1, 'TEST_NAME2' F2, 'TEST_VALUE2'F3 FROM DUAL
)
ORDER BY SEQ
) B ON (A.F1 = B.F1)
WHEN MATCHED THEN
UPDATE SET
F2 = B.F2,
F3 = B.F3
WHEN NOT MATCHED THEN
INSERT (
F1,
F2,
F3
)
VALUES (
B.F1,
B.F2,
B.F3
)
using 절안의 내용은 실제 테이블이나 편의상 쿼리로 구성했습니다.
상기 merge 가 정상적으로 처리 될수 있도록 할 수 있을까요?
현재는 동일 데이터가 2건이 나오기 때문에 제약조건에 걸려 등록/수정이 되지 않는 상태입니다.