텍스트가 잘리거나 기본 키를 포함한 하나 이상의 문자가 대상 코드 페이지에 일치하지 않습니다.
oledb target sql server 데이터베이스로 플랫 파일을 가져오려고 합니다.
저를 곤란하게 하는 분야는 다음과 같습니다.
플랫 파일 연결의 속성은 다음과 같습니다. 특히 필드:
다음은 오류 메시지입니다.
[출처 - 18942979103_txt [424] 오류: 데이터 변환 실패."수신자 이름" 열에 대한 데이터 변환에서 상태 값 4와 상태 텍스트 "텍스트가 잘렸거나 대상 코드 페이지에서 하나 이상의 문자가 일치하지 않습니다."를 반환했습니다.
내가 뭘 잘못하고 있는 거지?
이것이 제가 그 문제를 해결한 이유입니다.저는 엑셀로 변환할 필요가 없었습니다.데이터 원본을 "텍스트 스트림"으로 선택할 때 데이터 유형을 수정했습니다(그림 1).매핑 편집 대화상자를 확인하여 크기 변경을 확인할 수도 있습니다(그림 2).
그림 1
그림 2
길이를 늘리거나 데이터 형식 텍스트로 변경하는 데 실패한 후, XLSX 파일을 만들고 가져오기를 통해 이 문제를 해결했습니다.모든 열을 다음과 같이 설정하는 대신 데이터 유형을 정확하게 감지했습니다.varchar(50)
알고 보니nvarchar(255)
그 칼럼도 그렇게 했을 것이기 때문입니다.
파일 상단에 있는 텍스트 값이 가장 긴 소스 데이터(xls, csv 등)를 주문하여 이 문제를 해결했습니다.엑셀은 훌륭합니다.문제가 있는 열에서 LEN() 기능을 사용합니다.데이터 집합 위에 가장 긴 값이 있는 길이 값을 기준으로 정렬합니다.저장합니다. 가져오기를 다시 시도하십시오.
SQL Server는 기본적으로 올바른 유형을 선택하지 않은 경우에도 사용자에게 적합한 데이터 유형을 제안할 수 있습니다. "유형 제안" 단추(위 스크린샷에 표시됨)를 클릭하면 SQL Server가 원본을 검색하고 오류를 발생시키는 필드에 대한 데이터 유형을 제안할 수 있습니다.저의 경우 제안을 생성하기 위해 20000개의 행을 스캔하기로 선택하고 결과 제안된 데이터 유형을 사용하여 문제를 해결했습니다.
위에서 제안한 접근 방식(@chooooos, 이 q&a에서 Excel 워크북으로 변환)과 가져오기를 통해 이러한 문제를 해결할 수 있지만, 다른 q&a에서 이 솔루션을 사용하면 csv 또는 tsv 또는 txt 파일을 유지하고 Microsoft 제품 관련 솔루션을 생성하지 않고도 필요한 미세 조정을 수행할 수 있기 때문에 매우 좋습니다.
'UNICode' 확인란을 선택하여 해결했습니다.이미지 링크 아래를 클릭합니다.
특정 열에 대한 데이터를 가져오는 동안 열 길이를 늘려야 합니다.
데이터 원본 >> 고급 >> 열을 기본값 50에서 200 이상으로 늘립니다.
기술적인 솔루션은 아니지만 SQL Server 2017 플랫 파일 가져오기 기능이 완전히 개선되었으며, 5번의 클릭으로 큰 크기의 파일을 가져와 인코딩/필드 길이 문제를 처리했습니다.
SQL Management Studio 데이터 가져오기는 처음 몇 행을 살펴 소스 데이터 사양을 확인합니다.
가장 긴 텍스트가 맨 위에 오도록 레코드를 이동합니다.
위의 어떤 것도 저에게 효과가 없었습니다.소스 데이터(Save as) Excel 파일을 하나의 xls 워크시트 Excel 5.0/95로 저장하고 열 제목 없이 가져오기를 통해 문제를 해결했습니다.또한 SQL이 테이블을 만들도록 하지 않고 미리 테이블을 만들고 수동으로 매핑했습니다.
는 두(DB2와 에 , 으로 나는두개다데이스베에이(DB2와다 SQL)대해비슷있고었, 침그사해니습했결여하용마를 사용하여 했습니다.CAST
DB2의 원본 쿼리에 있습니다.또한 소스 열을 다음과 같이 조정하여 쿼리를 사용합니다.varchar
불필요한: 불요한공방수있습다니할지백을필▁and.
CAST(RTRIM(LTRIM(COLUMN_NAME)) AS VARCHAR(60) CCSID UNICODE
FOR SBCS DATA) COLUMN_NAME
여기서 중요한 문제는 CCSID 변환입니다.
일반적으로 연결 관리자에서 여전히 50자일 수 있기 때문에 연결 관리자로 이동하여 문제를 해결했습니다.--> 고급으로 이동한 다음 100으로 변경하거나 충분히 크면 1000일 수 있습니다.
언급URL : https://stackoverflow.com/questions/25554418/text-was-truncated-or-one-or-more-characters-had-no-match-in-the-target-code-pag
'programing' 카테고리의 다른 글
오라클에서 UTF8을 표시하도록 세션을 변경하려면 어떻게 해야 합니까? (0) | 2023.06.25 |
---|---|
GitHub에서 Git 커밋 메시지 편집 (0) | 2023.06.25 |
git 원격 업데이트와 fetch의 차이점은 무엇입니까? (0) | 2023.06.25 |
com.sun.vmdk.api.client.ClientHandlerException: java.net .예외 연결:연결 거부됨: Spring Boot에서 연결 (0) | 2023.06.25 |
유형 스크립트 반응 구성 요소의 반응/prop-typeeslint 오류 (0) | 2023.06.25 |