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로 잡고 들어가도록 하는게 성공이었다.
도움이되었다면 아래 공감 🧡 부탁드립니다 🧡
'Database > MS-SQL' 카테고리의 다른 글
MSSQL ) 프로시저 만들기. 프로시저 생성 (0) | 2024.02.20 |
---|---|
MSSQL) MyBatis와 프로시저 update/insert 사용시 결과 값 받기. -1이 반환될때, MyBatis + Procedure (0) | 2023.10.26 |
MS-SQL) 테이블 컬럼 추가, 기본값 디폴트 값 주기 (0) | 2023.09.21 |
MSSQL) 계산 및 형변환 float -> int로 변환 시 1씩 차이나는 현상 (0) | 2023.07.27 |
[MS-SQL] 데이터베이스 유저, 테이블 소유자 조회하기 (0) | 2022.12.07 |