반응형

데이터 조회를 하려고 했는데, 아래 사진과 같이 문제가 발생했다.

 

 

the conversion of the varchar value overflowed an int column.

the conversion of the varchar value overflowed an int column

 

이 문제를 해결하기 위해 시도했던 방법을 적는다.

 

1. 프로시저 INT형을 BIGINT형으로 변경

VARCHAR 형의 데이터는 '09817250500'인데, 이것을 INT형으로 바꾸면 INT형의 범위가 벗어난다.

 

- 아래와 같이, TEST_A 변수의 INT형을 BIGINT형으로 바꿨다.

DECLARE @TEST_A INT

DECLARE @TEST_A BIGINT

 

INT형의 범위는 아래와 같다.

- -2^31(-2,147,483,648) ~ 2^31-1(2,147,483,647)

-2^31(-2,147,483,648) ~ 2^31-1(2,147,483,647)

 

BIGINT형의 범위는 아래와 같다.

- -2^63(-9,223,372,036,854,775,808) ~ 2^63-1(9,223,372,036,854,775,807)

-2^63(-9,223,372,036,854,775,808) ~ 2^63-1(9,223,372,036,854,775,807)

 

이렇게 했는데도 해결이 되지 않았다.


2. 데이터 및 형변환 확인

프로시저나 함수를 보게 되면, 데이터를 형변환하는 쪽을 봐야 한다. INT형을 BIGINT형으로 바꿨는데도 해결이 되지 않았다면, 혹시 저 데이터가 날짜 형식으로 변환하고 있는지를 확인해야 한다.

 

나도 원래는 저 데이터가 아니라 날짜형식의 데이터가 들어와야 하는데, 날짜형식에 범위가 벗어나서 위 에러가 났다.

CONVERT(DATE, @TEST_A)

 

위의 코드처럼, @TEST_A 변수가 가지고 있는 데이터를 DATE 형식으로 CONVERT를 하는데, 이게 날짜 형식에 맞지 않으니 the conversion of the varchar value overflowed an int column 이 에러가 발생했다.

 

그래서, 데이터를 수정해서 이 문제를 해결했다.

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기