데이터 조회를 하려고 했는데, 아래 사진과 같이 문제가 발생했다.
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 이 에러가 발생했다.
그래서, 데이터를 수정해서 이 문제를 해결했다.
'IT > DB' 카테고리의 다른 글
[데이터베이스/DB] com.microsoft.sqlserver.jdbc.SQLServerException: 인덱스 3이(가) 범위를 벗어났습니다. 문제 해결 방법 (2) | 2022.12.05 |
---|---|
[DB] PLS-00201: 'DBMS_CRYPTO' 식별자가 정의되어야 합니다 문제 해결 방법 (0) | 2022.10.06 |
[DB] Function 및 프로시저 추출 스크립트 PL/SQL로 생성하는 방법 (0) | 2022.10.05 |
티베로(Tibero) 엑셀파일 업로드 하는 방법(expImp 사용 X, Tibero Studio 2) (0) | 2022.04.07 |
엑셀(Excel)에서 2개 이상의 열을 기준으로 중복값 찾기 (0) | 2022.04.07 |
SQL WHERE 1=1과 1=2 사용하는 이유 (0) | 2022.02.10 |
데이터베이스(DB) JOIN(INNER JOIN / LEFT JOIN / RIGHT JOIN / OUTER JOIN) 정리 (0) | 2021.10.25 |
데이터베이스(DB) 서브쿼리(SubQuery) 정리 (1) | 2021.04.06 |
최근댓글