PRB: Jet 4.0LEDB 원본에서 데이터의 전송 버퍼 오버플로 오류가 발생

기술 자료 번역 기술 자료 번역
기술 자료: 281517 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

현상

Jet에 대 한 데이터 변환 서비스 (DTS) 및 Microsoft OLE DB 공급자를 사용 하 여 Jet OLEDB 4.0 데이터 원본에서 데이터를 가져올 때 데이터 펌프 작업이 오류 메시지와 함께 실패할 수 있습니다.
"행 번호 9.이이 작업에서 지금까지 발생 한 오류에 대 한 소스에서 오류가 발생 했습니다: 1"
일반 오류:-2147217887(80040E21)
데이터 소스 열 3('col3')에 대 한 지정 된 버퍼 크기가 너무 큽니다.
원본 필드가 255 개 이상의 문자가 있는 경우 이러한 필드에 대 한 대상 데이터 255 자로 잘릴 수 있습니다. DTS는 필드를 255 개 이상의 문자가 있는 첫 번째 행에서 오류가 발생 합니다. 이 확인 하려면 오류 메시지에 표시 되는 행 번호를 조회 합니다.

원인

Jet OLE DB 공급자가 원본 열의 형식을 추측 하기 읽으려면 행 개수를 확인 하는 레지스트리 키를 읽습니다. 레지스트리 설정은 다음과 같습니다.

HKLM\Software\Microsoft\Jet\4.0\Engines\Excel\TypeGuessRows

기본적으로이 키 값이 8입니다. 따라서 공급자가 열의 데이터 형식을 결정 하는 원본 데이터의 처음 8 개 행을 검사 합니다. 텍스트 및 길이 같은 모든 필드를 조회 하는 경우 데이터가 255 자를, 열 메모 필드 이름으로 입력 하는. 따라서 처음 8 개 원본 행에서 255 자 보다 큰 길이가 데이터가 없으면 Jet 데이터 형식의 특성을 정확 하 게 확인할 수 없습니다.

해결 과정

중요 한이 섹션, 메서드 또는 작업 레지스트리를 수정 하는 방식을 지정 하는 단계가 포함 되어 있습니다. 그러나 레지스트리를 잘못 수정 하면 심각한 문제가 발생할 수 있습니다. 따라서 다음이 단계를 신중 하 게 수행 해야 합니다. 수정 하기 전에 추가 보호를 위해 레지스트리를 백업 합니다. 그런 다음 문제가 발생할 경우 레지스트리를 복원할 수 있습니다. 백업 및 레지스트리를 복원 하는 방법에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서 번호를 클릭 합니다.
322756백업 하 고 Windows에서 레지스트리를 복원 하는 방법

값을 변경 하려면TypeGuessRows다음과이 같이 하십시오.
  1. 시작메뉴를 클릭실행. 에실행대화 상자, 형식Regedt32를 클릭 하 고 다음을 클릭확인.
  2. 레지스트리 편집기에서 다음 키를 엽니다.

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel

    참고64 비트 시스템의 경우 해당 키는 다음과 같습니다.

    HKLM\SOFTWARE\wow6432node\microsoft\jet\4.0\engines\excel
  3. 두 번 클릭TypeGuessRows.
  4. DWORD 편집기대화 상자 클릭10 진수아래에서자료. 0에 대 한 포괄 시간 16 사이의 값을 입력 합니다.데이터입니다.
  5. 클릭확인및 다음 레지스트리 편집기를 종료 합니다.
레지스트리를 수정 하지 않고이 문제를 해결 하는 두 번째 방법은 있는지는 255 문자 데이터 필드와 행 이상 인지 확인 하는 것, 원본 데이터 파일의 처음 8 개 행에 표시 됩니다.

추가 정보

값의 유효한 범위는TypeGuessRows키는 16 0입니다. 그러나 값이 0 이면 스캔 한 원본 행 수가 16384입니다. 0 값은 소스 파일이 매우 큰 경우 작은 성능 일으키는 유의 하십시오.

문제를 재현 하는 방법

  1. 새 Microsoft Excel 통합 문서를 열 및 시트 세 단과 11 행에 만들고 첫 번째 행에 열 이름 포함 합니다.
  2. 처음 8 개 행 길이 255 문자 데이터를 가질 수 있도록 셀에 데이터를 삽입 합니다.
  3. 10 및 11 행에 길이가 255 자 보다 큰 데이터를 삽입 합니다. 이 시트를 Excelsource.xls로 저장 합니다.
  4. SQL Server 엔터프라이즈 관리자를 열고 서버 이름을 확장 합니다. 마우스 오른쪽 단추로 클릭데이터 변환 서비스를 클릭 하 고 다음을 클릭데이터 가져오기.
  5. 원본의 Excel 97-2000 공급자를 선택 하 고 이전 (ExcelSource.xls)를 저장 하는 Excel 시트의 이름을 제공 합니다.
  6. 대상 선택에 대 한SQL에 대 한 Microsoft OLEDB 공급자를 클릭 하 고 대상 데이터베이스를 선택 합니다.
  7. 클릭테이블 및 뷰 DB 원본에서 복사를 클릭 하 고 다음을 클릭다음.
  8. 원본 테이블을 선택 합니다.대화 상자에서 Sheet1 $를 선택, 클릭다음를 클릭 하 고 패키지를 즉시 실행 합니다. 패키지 실행 "현상" 절에 나와 있는 오류 메시지와 함께 실패 합니다.

  9. 명령을 사용 하 여 대상 데이터베이스에서 Sheet1$ 테이블 삭제다음은 Sheet1$ 테이블 삭제.
  10. "해결 방법" 절에서 해결 방법을 사용 하 고 레지스트리 키에 대 한 변경TypeGuessRows.
  11. 이제, 4-8 단계를 반복 합니다. 이 이번 패키지 실행 성공적으로 수행 됩니다.

참조

Microsoft Excel과 관련이 문제에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조 하는 아래 문서 번호를 클릭 하십시오.
189897XL97: 데이터가 255 자 Excel ODBC 드라이버를 잘렸습니다.

속성

기술 자료: 281517 - 마지막 검토: 2011년 2월 5일 토요일 - 수정: 1.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
키워드:?
kbjet kbprb kbmt KB281517 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
이 문서의 영문 버전 보기:281517

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com