Database/MS-SQL

MS-SQL) MSSQL Excel 엑셀 데이터 가져오기 열 잘림 오류

luana_eun 2024. 3. 21. 14:03
728x90

 

MS-SQL에서 엑셀 데이터를 가져올때 흔히 발생하는 오류인 열 잘림 오류

 

 

 

 

실행 중 (Error)
Messages
오류 0xc020901c: 데이터 흐름 태스크 1: 원본 - Sheet1$.출력[Excel 원본 출력]의 원본 - Sheet1$.출력[Excel 원본 출력].열[content]에 오류가 있습니다. 반환된 열 상태는 "텍스트가 잘렸거나 하나 이상의 문자가 대상 코드 페이지와 맞지 않습니다."입니다.
 (SQL Server 가져오기 및 내보내기 마법사)
 
오류 0xc020902a: 데이터 흐름 태스크 1: 잘림이 발생했기 때문에 "원본 - Sheet1$.출력[Excel 원본 출력].열[content]"이(가) 실패했으며 "원본 - Sheet1$.출력[Excel 원본 출력].열[content]"에서의 잘림 행 처리는 잘림 발생 시 실패하도록 지정되어 있습니다. 해당 구성 요소의 지정한 개체에서 잘림 오류가 발생했습니다.
 (SQL Server 가져오기 및 내보내기 마법사)
 
오류 0xc0047038: 데이터 흐름 태스크 1: SSIS 오류 코드 DTS_E_PRIMEOUTPUTFAILED. 원본 - Sheet1$에서 PrimeOutput 메서드가 오류 코드 0xC020902A을(를) 반환했습니다. 파이프라인 엔진이 PrimeOutput()을 호출할 때 이 구성 요소가 오류 코드를 반환했습니다. 이 오류 코드의 의미는 구성 요소에 따라 다르지만 파이프라인의 실행을 중지할 수도 있는 오류입니다. 오류에 대한 자세한 정보와 함께 이 오류 메시지보다 먼저 게시된 오류 메시지가 있을 수도 있습니다.
 (SQL Server 가져오기 및 내보내기 마법사)

 

 

 

 

가져올때 글이 많은 열은 varchar 설정을 max로 설정했음에도 이 오류가 계속 발생했다. 

 

 

 

구글링 해본 결과, 레지스트리에 값을 수정해야했다. 

엑셀에서 가져올 수 있는 글자 수 제한을 무한으로 늘리는것.

 

 

 

해결방안1

실행장을 켜고(window + r)  regedit 를 입력하여 레지스트리 편집창을 연다. 

 

Excel의 TypeGuessRows의 8을 0으로 수정한다. 

해당 위치는 찾기로 TypeGuessRows를 검색하여 찾는다.(찾는데 시간 쫌 걸림)

 

 

 

 

 

 

해결방안2

레지스트리를 수정 했는데도 안되서...

다른 방법인 제일 긴 문자열을 제일 첫 열에 넣어주기로 했다. 

엑셀 파일을 열어서 제일 첫 열에 제일 긴 데이터를 넣어주는것이다. 

 

이렇게 해서 다시 했더니, 원래는 컬럼 매칭할때 nvarchar(255)여서 내가 수동으로 max로 바꿨었는데

이제는 자동으로 처음부터 max로 들어가있었다. 

 

 

결과는 성공적...!!!

첫 열에 제일 긴 데이터를 넣어서 가져올때 처음부터 max로 잡고 들어가도록 하는게 성공이었다. 

 

 

도움이되었다면 아래 공감 🧡 부탁드립니다 🧡

 

 

728x90