본문 바로가기
DBMS/MS-SQL

[MSSQL] expression을(를) 데이터 형식 int(으)로 변환하는 중 산술 오버플로 오류가 발생했습니다.

by 성은2 2023. 11. 28.

오류구문

SELECT ISNULL(SUM(pur_amount),0) FROM CAL_TB;

'expression을(를) 데이터 형식 int(으)로 변환하는 중 산술 오버플로 오류가 발생했습니다.'

 

원인

(int형) pur_amount 컬럼이 최대로 수용할 수 있는 값의 허용 범위를 초과하여 오류 발생  

 

해결

컬럼을 bigint로 변환 Convert(BigInt, column).

SELECT ISNULL(SUM(CONVERT(BIGINT,purAmt)),0) FROM CAL_TB;

=> pur_amount 컬럼 값을 전부 더하는(sum) 쿼리가 있었다. 이 때 sum한 결과값이 int의 허용 범위를 초과해서 bigint형으로 형 변환(convert)해서 해결했다.

 

 

참고

int 데이터 형식은 SQL Server의 기본 정수 데이터 형식입니다. bigint 데이터 형식은 정수 값이 int 데이터 형식에서 지원하는 범위를 초과할 수 있는 경우에 사용하기 위한 것입니다.