DBAtlas · 데이터베이스 운영 아틀라스

8114: Error converting data type X to Y

SQL Server

의미

타입이 호환되지 않아 값을 한 데이터 타입에서 다른 타입으로 변환할 수 없었다. 오류 245와 달리 보통 파라미터/표현식 수준의 타입 변환 실패다(예: varchar에서 numeric으로).

원인

숫자가 아니거나 형식이 잘못된 텍스트를 숫자 컬럼/파라미터에 보냈거나, scale/precision 오버플로, 빈 문자열('')을 numeric으로 변환 시도, 파라미터화된 쿼리에 잘못된 타입의 인수 전달이 원인이다. ORM이 생성하는 암묵적 변환에서 흔하다.

해결 방법

변환되는 값이 대상 타입에 맞는지 확인한다. 안전한 변환에는 TRY_CONVERT / TRY_CAST를 사용한다. 실패 시 NULL을 반환하므로 WHERE로 해당 행을 걸러낼 수 있다. 파라미터 타입을 컬럼 타입과 일치시킨다. ISNUMERIC/TRY_CAST로 데이터를 스캔해 문제 행을 찾고 빈 문자열을 정리한다.

DBAtlas에서 열기 →

같은 데이터베이스의 다른 항목