2014-04-06 3 views
0

파이프로 구분 된 텍스트 파일이 있습니다. BULK INSERT를 사용하여 SQL Server의 테이블로 가져옵니다.SQL Server 대량 가져 오기 - 문자 번역?

특정 문자에 심각한 문제가있었습니다. 예를 들어, "30º 기울기 및 80º"로 텍스트 파일에 나타나는 텍스트는 "30º 기울기 및 80º as"로 가져옵니다.

이제 실제로 텍스트 파일의 데이터가 다른 SQL에서 생성되었습니다 서버 데이터베이스, 원본 테이블에서 문자열은 "30º의 기울기 및 80º"로 표시되므로 다소 당황 스럽습니다.

두 데이터베이스의 데이터 정렬이 동일합니다. 나는 대량 삽입 작업을 수행하는 데 사용하는 SP는 다음과 같습니다

다른 모든면에서 잘 작동
DECLARE @sql nvarchar(4000) = 'BULK INSERT ' + @TempTable + ' FROM '''[email protected]+''' WITH (FIELDTERMINATOR=''|'',ROWTERMINATOR=''\n'');' 
EXEC(@sql) 

감사 @sourcefile은 ANSI 인코딩되어 가정

+0

데이터베이스에서 사용하는 데이터 정렬의 코드 페이지에 대량 삽입 명령의 코드 페이지가 강제로 시도됩니다 .- 결과가 "30º의 기울기 및 80º"로 변경됩니다. –

답변

0

이 작동합니다 :

DECLARE @sql nvarchar(4000) = 'BULK INSERT ' + @TempTable + ' FROM '''[email protected]+''' WITH (FIELDTERMINATOR=''|'',ROWTERMINATOR=''\n'', CODEPAGE=''ACP'');' 
EXEC(@sql) 
+0

감사합니다. 나는 이미 성공하지 않고 그것을 시도했다. –

0

결과

텍스트 파일이 유니 코드로 인코딩되지 않았습니다. 이 문제를 변경하면

관련 문제