개요
티베로에서 Merge 사용 중 "jdbc-10021:inconsistent set of rows in source tables"와 같은 에러가 발생하였습니다.
원인
수정할 내용을 가져오는 소스에 중복되는 내용이 있어 발생하는 에러입니다.
상세내용
테이블 정보가 있다고 가정하겠습니다.
table info test1
tc1, tc2
1 'N'
1 'N'
2 'N'
3 'N'
4 'N'
5 'N'
table info test2
tc21, tc22
1 'Y'
1 'Y'
2 'Y'
3 'Y'
4 'Y'
5 'N'
test2 테이블의 tc22의 내용을 test1 테이블 tc2에 Merge로 업데이트한다고 가정했을 때 " jdbc-10021:inconsistent set of rows in source tables " 에러가 발생합니다.
MERGE INTO test1 A
USING (
SELECT "test1" as test2
FROM test2
Where testcol = 'Y'
) B
ON ( A.testcol1 = B.testcol11 )
WHEN MATCHED THEN
UPDATE SET
A.testcol2 = B.testcol12
해결 방법
데이터가 1:1로 메칭이 될 수 있도록 수정을 해야 합니다.
맺음말.
초기 설계 시 중복에 대한 처리가 되어 있으면 문제가 발생하지 않을 내용입니다. 초기 설계가 잘되어 있어야 이러한 예외 사항이 발생하지 않습니다. 조금만 더 신경 써서 DB 설계를 해야겠습니다.
반응형
'IT > DB' 카테고리의 다른 글
SELECT ~ FOR UPDATE 구문( 동시성 제어의 핵심) (0) | 2024.08.06 |
---|---|
MSSQL 2005 - 파일그룹 생성 SQL 예제 (0) | 2024.07.31 |
REGEXP_LIKE() 함수 정리 (1) | 2024.01.25 |
[Tibero] 한글,영문, 숫자 정렬 하기. (0) | 2024.01.25 |
[MSSQL] 임시테이블(@테이블,#테이블) (0) | 2023.06.20 |