카테고리 없음
[Oracle] ORA-30926 : 원본 테이블의 고정 행 집합을 가져올 수 없습니다.
미조미
2021. 6. 3. 13:57
[ORACLE] ORA-30926 : 원본 테이블의 고정 행 집합을 가져올 수 없습니다.
원인: MERGE INTO 문 사용시 중복 데이터로 인한 에러
MERGE INTO TABLE_A
USING TABLE (or VIEW or Subquery) B
ON COLA=COLB
WHEN MATCHED THEN UPDATE (or INSERT or DELETE)
WHEN NOT MATCHED THEN INSERT (or UPDATE or DELETE)
여기서 USING절 쿼리에 PK 중복값이 2개 이상인 경우 에러 발생
해결법: 중복 데이터 찾아서 해당 데이터 보정 or ON절에 조건 추가
1.중복 데이터 찾는 경우
SELECT COLB, COUNT(*)
FRO TABLE B
GROUP BY COLB
HAVING COUNT(*) > 1
위 쿼리로 중복 데이터 확인 후 데이터 보정
2.ON절에 조건 추가
MERGE INTO TABLE_A
USING TABLE (or VIEW or Subquery) B
ON A.COLA=B.COLB
AND A.COLC=B.COLD
WHEN MATCHED THEN UPDATE (or INSERT or DELETE)
WHEN NOT MATCHED THEN INSERT (or UPDATE or DELETE)