복붙노트

[SQL] SQL Server의 오류는 (MAX) VARCHAR에도 불구하고 CSV 파일을 가져 오는 것은 각 열에 사용되는 동안

SQL

SQL Server의 오류는 (MAX) VARCHAR에도 불구하고 CSV 파일을 가져 오는 것은 각 열에 사용되는 동안

나는 SQL 서버에 큰 CSV 파일 (몇 기가)를 삽입하려고하지만 마침내 가져 오기 마법사를 통해 이동하고 일단은 나는 다음과 같은 오류 보고서를 얻을 파일을 가져 오려고하고 있습니다 :

(SQL Server 가져 오기 및 내보내기 마법사)

(SQL Server 가져 오기 및 내보내기 마법사)

(SQL Server 가져 오기 및 내보내기 마법사)

(SQL Server 가져 오기 및 내보내기 마법사)

내가 처음에 파일을 삽입 할 테이블을 생성하고, 나는 여전히이 잘림 문제가 있는지 이해할 수 없어요, 그래서 나는, 홀드 VARCHAR (MAX)에 각 열을 설정합니다. 내가 무엇을 잘못하고 있지?

해결법

  1. ==============================

    1.SQL Server 가져 오기 및 내보내기 마법사에서는 고급 탭에서 소스 데이터 유형 (이러한 새로운 테이블을 만드는 경우 출력의 데이터 유형이 될하지만, 그 바로 소스 데이터를 처리하는 데 사용되는)을 조정할 수 있습니다.

    SQL Server 가져 오기 및 내보내기 마법사에서는 고급 탭에서 소스 데이터 유형 (이러한 새로운 테이블을 만드는 경우 출력의 데이터 유형이 될하지만, 그 바로 소스 데이터를 처리하는 데 사용되는)을 조정할 수 있습니다.

    데이터 유형은, MS SQL에 비해 귀찮게 상이한 대신 VARCHAR (255)의 그것과 DT_STR VARCHAR (MAX)의 경우 255로 설정 될 수있다 폭 출력 열의 그것의 DT_TEXT.

    그래서, 데이터 소스 선택에 고급 탭에서 (여러 열을 선택하고 한 번에 모두를 변경할 수 있습니다) DT_TEXT에 DT_STR에서 모든 잘못된 열 데이터 형식을 변경합니다.

  2. ==============================

    2.이 답변은 보편적으로 적용되지 않을 수도 있습니다,하지만 작은 텍스트 파일을 가져올 때 나는 발생 된이 오류의 발생을 고정. 플랫 파일 제공자는 정확 소스, 고정 50 문자 텍스트 열을 기반를 임포트했다. 대상 열을 매핑 아무리 문제를 영향을받지 않습니다.

    이 답변은 보편적으로 적용되지 않을 수도 있습니다,하지만 작은 텍스트 파일을 가져올 때 나는 발생 된이 오류의 발생을 고정. 플랫 파일 제공자는 정확 소스, 고정 50 문자 텍스트 열을 기반를 임포트했다. 대상 열을 매핑 아무리 문제를 영향을받지 않습니다.

    이 문제를 해결하기 위해, 입력 열 목록 아래에있는 파일을 선택한 후는 "유형을 제안 ...", 플랫 파일 제공은 "데이터 소스 선택"버튼이 나타납니다있다. 이 버튼을 타격 한 후, 변경이 enusing 대화를하지 않은 경우에도, 플랫 파일 제공자는 다음 소스 .CSV 파일을-쿼리 다시하고 정확하게 소스 파일의 필드의 길이를 결정했다.

    이 작업이 완료되자, 수입은 더 이상의 문제를 진행했다.

  3. ==============================

    3.http://support.microsoft.com/kb/281517을 : 나는 그것 버그, 해결 방법을 적용하시기 바랍니다 후 다시 시도라고 생각한다.

    http://support.microsoft.com/kb/281517을 : 나는 그것 버그, 해결 방법을 적용하시기 바랍니다 후 다시 시도라고 생각한다.

    또한, 고급 탭으로 이동하고, 확인 대상의 경우 열 길이는 VARCHAR (최대)이다.

  4. ==============================

    4.고급 편집기 대신 내가 메모장 (또는 당신의 마음에 드는 텍스트 / XML 편집기)를 통해 편집 dtsx 파일에 강제로, 내 문제를 해결하고 수동으로 속성 값을 대체하지 않았다

    고급 편집기 대신 내가 메모장 (또는 당신의 마음에 드는 텍스트 / XML 편집기)를 통해 편집 dtsx 파일에 강제로, 내 문제를 해결하고 수동으로 속성 값을 대체하지 않았다

    길이 = "0"데이터 유형 = "NTEXT"(I 유니 코드를 사용하고 있습니다)

    항상 텍스트 / XML 모드에서는 편집하기 전에 dtsx 파일의 백업을합니다.

    SQL Server 2008 R2를 실행

  5. ==============================

    5.고토 고급 탭 ----> 컬럼의 데이터 유형 ---> 여기서 이제 완벽하게 작동을 확인하실 수 있습니다 255 폭 데이터 DT_TEXT에 DT_STR에서 유형과 열을 변경합니다.

    고토 고급 탭 ----> 컬럼의 데이터 유형 ---> 여기서 이제 완벽하게 작동을 확인하실 수 있습니다 255 폭 데이터 DT_TEXT에 DT_STR에서 유형과 열을 변경합니다.

  6. ==============================

    6.발행물: 제트 OLE DB 공급자가 원본 열의 형식을 추측하기 읽을 수있는 행 수를 결정하는 레지스트리 키를 읽습니다. 기본적으로,이 키 값은 공급자의 열에 대한 데이터 유형을 결정하기 위해 소스 데이터의 제 8 개 행을 검사하여, 이에 따라 제이다. 텍스트와 데이터의 길이 같은 모든 필드의 모습이 255 자 이상일 경우, 열이 메모 필드로 입력됩니다. 소스의 처음 8 행 255 자보다 길이가 더와 데이터가없는 경우에 따라서, 제트 정확하게 데이터 유형의 특성을 확인할 수 없습니다. 보낸 시트 데이터의 제 8 행 길이가 255 미만의 고려 소스 VARCHAR (255)와 같은 길이보다 길이를 갖는 열에서 데이터를 읽을 수 없다.

    발행물: 제트 OLE DB 공급자가 원본 열의 형식을 추측하기 읽을 수있는 행 수를 결정하는 레지스트리 키를 읽습니다. 기본적으로,이 키 값은 공급자의 열에 대한 데이터 유형을 결정하기 위해 소스 데이터의 제 8 개 행을 검사하여, 이에 따라 제이다. 텍스트와 데이터의 길이 같은 모든 필드의 모습이 255 자 이상일 경우, 열이 메모 필드로 입력됩니다. 소스의 처음 8 행 255 자보다 길이가 더와 데이터가없는 경우에 따라서, 제트 정확하게 데이터 유형의 특성을 확인할 수 없습니다. 보낸 시트 데이터의 제 8 행 길이가 255 미만의 고려 소스 VARCHAR (255)와 같은 길이보다 길이를 갖는 열에서 데이터를 읽을 수 없다.

    고치다: 이 솔루션은 내림차순으로 주석 열을 정렬하는 것입니다. 2012 년 이후 우리는 가져 오기 마법사에서 고급 탭의 값을 업데이트 할 수 있습니다.

  7. from https://stackoverflow.com/questions/18600040/errors-in-sql-server-while-importing-csv-file-despite-varcharmax-being-used-fo by cc-by-sa and MIT license