DBMS/MS-SQL

[MS-SQL][Exception] 산술 오버플로 오류

Fly_Mir 2019. 5. 7. 14:52

MS-SQL Exception중 산술 오버플로 오류를 해결해보자.

산술 오버플로 오류는 간단히 말해서 숫자형의 허용 범위를 넘어서 발생한 오류이다.

필자는 NUMERIC를 사용할때 자주 발생한거 같다. (소수점까지의 합계나 평균등을 구할때)

아래처럼 명령을 내릴경우 에러가 발생한다.

    SELECT CONVERT(NUMERIC(3,2), 10.1125481 / 0.3)  -- 에러발생

해결방법은 간단하다 범위를 늘려주면 간단히 해결된다.

    SELECT CONVERT(NUMERIC(5,2), 10.1125481 / 0.3)  -- 정상작동

INT형은 약 21억까지 가져오는데 혹 INT형에서 문제가 생기면 BIGINT로 변경해주면면 해결된다.

(출력에는 21억까지 나올수가 없는데 내부에서 계산도중 21억이 넘어가도 에러가 발생한다.)

    SELECT CONVERT(INT, 3011254815)     -- 에러발생
    SELECT CONVERT(BIGINT, 3011254815)  -- 정상작동
관련글

날다의 운영환경
본체MacBook Pro
O SWindows7 Ultimate K
ApplicationMicrosoft SQL Server Management Studio 2017 V17.2
MS-SQLMicorsoft SQL Server 2016(SP1-CU5)