ORACLE 데이터베이스를 사용하다보면 MERGE INTO 명령어가 유용할 때가 있다. INSERT, UPDATE를 한방에 해주니까.
그런데 가끔 오류가 발생한다.
ORA-30926: unable to get a stable set of rows in the source tables
MERGE INTO 문법을 보면
MERGE INTO employees e
USING hr_records h
ON (e.id = h.emp_id)
WHEN MATCHED THEN UPDATE SET e.address = h.address
WHEN NOT MATCHED THEN INSERT (id, address) VALUES (h.emp_id, h.address)
여기서 중요한게 USING에서 사용되고 있는 테이블의 ON 조건 컬럼의 값이 UNIQUE해야 한다.
중복된 자료가 있으면 위와 같은 오류가 발생함.
그래서 오류가 발생했다면 USING 테이블의 컬럼으로 GROUP BY 해서 사용하면 됨.
728x90
'다시시작하는 > DATABASE' 카테고리의 다른 글
오라클 오류 : ora-01466 (0) | 2022.05.02 |
---|---|
SQL STYLE GUIDE (0) | 2020.11.11 |
실수로 데이터를 삭제했을때 (0) | 2020.02.19 |
오라클에서 TO_CHAR 사용시 공백생기는 이유 (0) | 2020.01.30 |
오라클 유용한 함수 정리 (0) | 2018.11.16 |