중복 행을오라클/엑사 ROWNUM 범위를 반환 내가 자바 프로그램의 for 루프에서 엑사에서이 쿼리를 실행하고
다음select a, b, c, d from (
select rownum r, a, b, c, d from foo order by c asc
) where r >= 40001 and r < 50001
내가 숫자를 반복 다음 루프에서, 그래서 10000에 의해 숫자를 증가 계속 50001 및 60001이 될 것입니다.
나는 행을 가져 와서 다른 데이터베이스에 삽입하고 다시 반복합니다. 내 소스 (엑사) 데이터베이스를 검사 할 때
현재, 내 코드가 A = 23 만 1 행이고 B = [email protected],
Exception in thread "main" java.sql.BatchUpdateException: Duplicate entry '[email protected]' for key 'PRIMARY'
at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1809)
at
같은 임의 오류가 발생. 따라서 원본에는 중복이 없습니다.
대상 데이터베이스를 검사 할 때 행 a = 23, b = [email protected]이 이미 이전 루프 반복에 삽입 된 것을 볼 수 있습니다. {{나는 프로그램 시작시 대상 테이블을 다시 만들고 다시 만듭니다.}}
그래서 내 창 쿼리가 같은 행을 반복해서 반환하는 것처럼 보입니다.
나는 검색을 많이했고, 내 윈도우 쿼리가 중복을 반환하지 것을 확신합니다 ...하지만이
않는 것처럼 나는 그렇게 알려 ... 오라클/엑사 전문가가 아니다 보인다 위의 쿼리가 다른 rownum 범위로 실행할 때 같은 행을 반환 할 수있는 변경 사항이있는 경우
또는 정렬 열에 대한 업데이트. –