JAVA

[에러] outside valid range for the datatype INTEGER 에러 발생 및 해결

예나부기 2022. 3. 18.

사건의 발단

DataTable에서 데이터를 조회하는데, 10개씩 조회를 했으나

결과 행이 2개, 3개 밖에 나오지 않는 현상을 발견

 

서버 점검

톰캣 로그를 확인해 보니, 아래의 에러가 출력되고 있는 것을 확인하였음

~~ is outside valid range for the datatype INTEGER

 

처음에는 DB 컬럼에 너무 큰 숫자가 들어갔나 싶어, 해당 컬럼(7번째 컬럼)의 data type을 확인하였다.

>> data type은 BIGINT로, DB에 값이 잘 들어가 있었다.

>> DB에 insert 하는 과정에서 일어난 에러가 아닌 것을 확인

>> 자바에서 해당 값을 select 해오는 과정에서 일어난 에러라고 추측

 

내부 테스트

해당 컬럼의 크기를 INTEGER의 최대 크기(2,147,483,647)보다 크게 설정하고, (35억으로 설정함)

해당 값을 select 하는 로직을 살펴보았다.

 

문제점

해당 컬럼을 rs.getInt() 를 통해 가져오고 있었는데, 이 과정에서 35억이라는 숫자를 INTEGER 타입으로 가져오지 못함

 

해결 방법

rs.getInt를 rs.getLong으로 변경한다.DataTable 정상 조회 확인!

 

 

 

댓글