반응형
[ Contents ]
1. 오류 메시지
java.sql.SQLException: ORA-30926: 원본 테이블의 고정 행 집합을 가져올 수 없습니다
2. 원인
MERGE INTO 문에서 USING ON 구문이 여러 행 조회되면서 문제가 발생합니다.
MERGE INTO문은 하나의 행을 조회해서 있으면 UPDATE, 없으면 INSERT하는 구문입니다. 따라서 USING ON을 통해 조회되는 데이터는 1개여야 합니다.
반응형
3. 해결방안
MERGE INTO
TABLE1 A
USING
TABLE2 B
ON
(A.PK = B.PK)
WHEN MATCHED
THEN
...
위와 같이 있는 MERGE INTO 절에서 USING ON으로 조회되는 데이터를 검증합니다.
SELECT *
FROM TABLE1 A, TABLE2 B
WHERE A.PK = B.PK;
조회 후 하나의 행이 나오도록 조건절을 추가하거나, 필요없는 데이터를 삭제합니다.
반응형
댓글