본문 바로가기
IT/DB

[Tibero]jdbc-10021:inconsistent set of rows in source tables 처리방법

by 불멸남생 2024. 3. 20.

개요

티베로에서 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 설계를 해야겠습니다.

반응형