앵간히 삽질좀 했는데..


Provider=Microsoft.ACE.OLEDB.12.0; 로 Excel 데이터를 로드 했을경우 (그외에도 있을것 같음)

TEXT 데이터가 담긴 컬럼의 내용(글자)가 255자로 잘리는 현상이 발생한다. 


원인을 여기저기 뒤적거려보니... 대충 결론은 다음과 같다.


1. 최초 8개 행 정도를 읽어서 컬럼마다 데이터 형을 정의한다.

2. 최초 8개 행 255자 이하의 TEXT가 존재할 경우 그 컬럼의 최대 문자열 길이는 255자로 정의된다. 

3. 이후 정의된 255자를 초과 하더라도 전체 TEXT 데이터를 읽지 못한다. 

4. 해결방법은 초 간단하다. 최초 읽어서 판단하는 8개행의 데이터 중에 255자 이상의 최대 문자열을 넣는다. 


* 문제 해결 방법 중 레지스트리를 수정하는 방법도 있으나, 프로그램을 배포하는 측면에서는 짜증이 일어난다. (왜안되요!?)

* 속편하게 Source Excel을 "이렇게 써라" 라고 정의하는게 젤 편하다. 

  ex) 1첫 행의 데이터는 읽지 않고 스킵합니다. (대신 내가 최대 문자열로 넣어버린다.)


* 자세한 내용은 다음 링크에서 확인 가능하다.

  LINK : https://support.microsoft.com/ko-kr/kb/281517