본문 바로가기

프로그램/MS SQL

com.microsoft.sqlserver.jdbc.SQLServerException

반응형

com.microsoft.sqlserver.jdbc.SQLServerException: 데이터 형식 varchar을(를) varbinary(으)로 암시적으로 변환할 수 없습니다.

mssql에서 insert 하는데 에러가 발생했는데 db툴에서는 잘되는 쿼리인데
시스템에서 돌리면 에러가 나더라구요.

보통은 테이블의 인서트하는 컬럼 항목의 자료형이 VARBINARY 인 경우 ,

이 컬럼에 대한 입력값을 CAST 나 CONVERT 함수를 이용해 명시적으로 형변환 해주세요.

예시) 컬럼의 타입과 사이즈를 입력해야 됩니다.
CAST(#입력받는 항목명# AS VARBINARY(16))
CONVERT(VARBINARY(16), #입력받는 항목명#)

하지만 저의 경우에는 ISNULL(#입력받는 항목명#, 컬럼명) 구문을 ISNULL(컬럼명, #입력받는 항목명# ) 으로 변경했더니 되었습니다.

아니면  ISNULL()  CASE문으로 바꾸니 잘된다고 합니다.

반응형