[MSSQL] 예상 데이터 길이와 일치하지 않는 데이터를 반환했습니다.

#MSSQL #에러 #오류 #컬럼길이 #뷰수정 #해결방법

안녕하세요, 배곧동개발자 입니다.

개발을 하다보면 진짜 이해할 수 없는 오류들이 너무나도 많이 나오죠. 이번에 해결한 MSSQL 오류 하나 알아볼까합니다.


1. 에러 : 예상 데이터 길이와 일치하지 않는 데이터를 반환했습니다.

연결된 서버 ‘xxx.xxx.xxx.xxx’의 OLE DB 공급자 ‘MSOLEDBSQL’이(가) 열 ‘[dbo].[xxx_VIEW].column’의 예상 데이터 길이와 일치하지 않는 데이터를 반환했습니다. 최대 예상 데이터 길이는 100이지만 반환된 데이터 길이는 196입니다.

이렇게 오류가 떴습니다. 이게 무슨 오류일까 하고 검색을 해보니 나오는것은 죄다 ORACLE이나 MYSQL과의 연동 오류라며 TO_CHAR를 붙히라던가 하는 해결책만 제시하더군요.

하지만 저는 MSSQL만 이용하는걸요? 모두 유효하지 않은 해결책들이지요.


2. 해결방법

여러말 하지 않고 바로 해결책을 알아보겠습니다.

뷰를 수정하시면 됩니다. 크게 뭔가 다른걸 하지 마시고 그냥 위에처럼 alter스크립트를 열어서 바로 실행해버리시면 됩니다.


3. 이유

왜 저렇게 해결이 되냐? 싶겠죠! 간단합니다. 이 에러가 뜨는 이유는 뷰에 포함된 테이블 내 컬럼의 길이(크기)를 변경하였으나 뷰를 갱신(alter)시키지 않아서 생긴 문제이기 때문이죠.

컬럼 길이를 늘려서 데이터는 우겨넣었는데 뷰에서는 정작 이전의 컬럼 길이로 인식을 해서 저런 에러를 띄운다고 이해하시면 됩니다.


어렵게 생각하지 마시고 그냥 [뷰스크립팅 > ALTER > 새 쿼리 편집기 창 > F5] 누르시면 끝.

이만, 배곧동개발자 였습니다.

Leave a Comment