programing

Excel에서 SQL Server 2005로 가져오는 잘라내기 오류

testmans 2023. 8. 18. 21:02
반응형

Excel에서 SQL Server 2005로 가져오는 잘라내기 오류

요약하자면, 엑셀 문서를 하나씩 가져와서 가져오기/내보내기 마법사를 사용하여 SQL Server 2005의 데이터베이스로 가져옵니다.

여기 하나의 보고서가 있습니다(표시되지 않은 모든 프로세스는 "성공"입니다).절단 오류를 무시할 수 있는 방법이 있습니까?저는 구글 검색을 해봤지만 소용이 없었습니다. 적어도 제 버전에서는요.

- Executing (Success)

- Copying to [Datadev].[dbo].[Sheet0$] (Error)
  Messages
  * Error 0xc020901c: Data Flow Task: There was an error with output

출력 "Excel 소스 출력"(9)의 "값 의미 설명"(234) 열.반환된 열 상태: "텍스트가 잘렸거나 대상 코드 페이지에 하나 이상의 문자가 일치하지 않습니다."(SQL Server 가져오기 및 내보내기 마법사)

  * Error 0xc020902a: Data Flow Task: The "output column "Value

잘라내기가 발생하여 의미 설명"(234)"에 실패했으며, "출력 열 "값 의미 설명"(234)"의 잘라내기 행 처리에서 잘라내기 실패를 지정합니다.지정된 구성 요소의 지정된 개체에 대해 잘라내기 오류가 발생했습니다. (SQL Server 가져오기 및 내보내기 마법사)

  * Error 0xc0047038: Data Flow Task: SSIS Error Code

DTS_E_PRIME 출력에 실패했습니다.구성 요소 "Source - Sheet0$"(1)의 PrimeOutput 메서드에서 오류 코드 0xC020902A를 반환했습니다.파이프라인 엔진에서 PrimeOutput()이라는 오류 코드를 반환했습니다.오류 코드의 의미는 구성 요소에 의해 정의되지만 오류는 치명적이며 파이프라인 실행이 중지되었습니다.이 전에 오류에 대한 자세한 정보와 함께 오류 메시지가 게시될 수 있습니다. (SQL Server 가져오기 및 내보내기 마법사)

  * Error 0xc0047021: Data Flow Task: SSIS Error Code

DTS_E_THREAD에 실패했습니다.스레드 "SourceThread0"이 오류 코드 0xC0047038과 함께 종료되었습니다.스레드가 종료된 이유에 대한 자세한 정보가 포함된 오류 메시지가 이 전에 게시될 수 있습니다.(SQL Server 가져오기 및 내보내기 마법사)

  * Error 0xc0047039: Data Flow Task: SSIS Error Code

DTS_E_THREAD가 취소되었습니다.스레드 "WorkThread0"이 종료 신호를 수신하여 종료되고 있습니다.사용자가 종료를 요청했거나 다른 스레드의 오류로 인해 파이프라인이 종료되었습니다.스레드가 취소된 이유에 대한 자세한 내용이 포함된 오류 메시지가 이 전에 게시될 수 있습니다. (SQL Server 가져오기 및 내보내기 마법사)

  * Error 0xc0047021: Data Flow Task: SSIS Error Code

DTS_E_THREAD에 실패했습니다.스레드 "WorkThread0"이 오류 코드 0xC0047039와 함께 종료되었습니다.스레드가 종료된 이유에 대한 자세한 정보가 포함된 오류 메시지가 이 전에 게시될 수 있습니다.(SQL Server 가져오기 및 내보내기 마법사)

- Post-execute (Success)
  Messages
  * Information 0x402090df: Data Flow Task: The final commit for the

데이터 삽입이 시작되었습니다. (SQL Server 가져오기 및 내보내기 마법사)

  * Information 0x402090e0: Data Flow Task: The final commit for the

데이터 삽입이 종료되었습니다. (SQL Server 가져오기 및 내보내기 마법사)

- Cleanup (Success)
  Messages
  * Information 0x4004300b: Data Flow Task: "component "Destination -

Sheet0$" (323)"는 210개 행을 기록했습니다. (SQL Server 가져오기 및 내보내기 마법사)

절단 오류가 발생하면 8개의 더미 행을 삽입합니다.각 셀에는 256보다 긴 정크 텍스트가 있습니다.이렇게 하면 탐지된 데이터 유형이 강제로 varchar(256)가 아닌 varchar(max)가 됩니다.행이 숫자 열이면 숫자(예: 0)로 입력해야 하고 날짜인 경우 더미 날짜를 입력해야 합니다. 그렇지 않으면 열을 null 데이터로 가져옵니다.

그런 다음 가져오기 후 이러한 정크 행을 삭제합니다.

이 마법사는 SQL Server 2000에서 마법사에서 얻은 값보다 더 작은 값을 Excel 데이터의 표준 막대 크기로 사용합니다.따라서 준비 테이블로 빠르게 가져오려는 데이터가 잘립니다.그러나 마법사를 수행할 때 한 화면에서 매핑을 편집할지 묻는 메시지가 표시되고 해당 필드의 크기를 수정할 수 있습니다.또는 테이블 스탯 생성을 먼저 사용하여 원하는 크기의 워크 테이블을 생성한 다음(데이터를 처음 보고 필드 크기를 모르는 경우 nvarchar(max)) 가져오기를 수행할 수 있습니다.Excel의 경우 SQL Server에서 데이터 유형을 확인하기 위해 몇 개의 행만 사용한 후 레코드(부품 번호와 같은)에 대한 삽입이 실패하는 문제가 있었습니다. 처음 몇 개의 레코드를 기반으로 할 때 데이터 유형이 실제로는 정수라고 생각했기 때문입니다.또한 이러한 문제가 발생할 수 있으므로 잘림 오류가 발생하지 않더라도 매핑을 검토하는 것이 좋습니다.

게 효과가 있었던 은 이렇습니다.

이는 레지스트리의 Excel에서 스프레드시트 내의 처음 8행의 데이터만 확인하여 나머지 데이터의 열 크기를 결정하도록 하는 훌륭한 설정 때문입니다.이 문제에 대한 해결책은 레지스트리를 8에서 0으로 설정하도록 수정하는 것입니다.0으로 설정하면 전체 스프레드시트를 확인합니다.이로 인해 파일이 매우 큰 경우 초기 데이터를 가져오는 동안 일부 성능 문제가 발생할 수 있습니다.다음은 검색할 레지스트리 키입니다(설정해야 할 레지스트리 키가 두 개 이상 있을 수 있음).

유형 추측 행

http://support.microsoft.com/kb/281517

TypeGuesRows 값을 변경하려면 1단계를 사용합니다.시작 메뉴에서 실행을 클릭합니다.실행 대화 상자에서 Regedt32를 입력한 다음 확인 2를 클릭합니다.레지스트리 편집기에서 다음 키를 엽니다.

HKEY_LOCAL_MACHINE\소프트웨어\Microsoft\제트 \4.0\엔진\엑셀

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

HKLM\SOFTWARE\wow6432node\microsoft\jet\4.0\colon\colon\colon 3.TypeGuesRows. 4를 두 번 클릭합니다.DWORD 편집기 대화 상자에서 베이스 아래의 소수점을 클릭합니다.값 데이터에 0에서 16 사이의 값을 입력합니다. 5.[확인]을 누른 후 레지스트리 편집기를 종료합니다.레지스트리를 수정하지 않고 이 문제를 해결하는 두 번째 방법은 데이터 255자 이상의 필드가 있는 행이 원본 데이터 파일의 처음 8행에 있는지 확인하는 것입니다.

오류를 무시하려는 이유는 무엇입니까?왜 그것들을 찾아서 고치지 않습니까?

어쨌든 마법사가 제공하는 것 이상의 작업이 필요한 경우에는 SSIS(SQL Server Integration Services)를 직접 사용해야 합니다.마법사가 사용하고 있는 것은 오류가 정상이라고 가정할 수 없습니다.

SSIS 패키지를 작성하여 Excel 파일을 루프하여 한 번에 하나씩 가져오는 것은 매우 간단합니다.가져오기 데이터 흐름은 오류를 무시하거나 오류를 보고하는 등의 다른 작업을 수행하도록 구성할 수 있습니다.

잘라내기 오류가 발생하는 SQL Server로 Excel, CSV 또는 텍스트 데이터를 가끔 가져오려면 먼저 데이터를 MS Access로 가져온 다음 업사이징 마법사를 사용하여 SQL에 직접 테이블을 만들고 채우는 것이 좋습니다.

SQL Server 가져오기 마법사에서 데이터를 가져오는 데 사용할 파일을 지정해야 하는 섹션으로 이동하는 즉시 "고급" 옵션을 클릭합니다.필드 속성과 함께 입력 파일의 모든 필드가 표시됩니다.변경해야 하는 속성은 "DataType"입니다.일반적으로 기본값은 "string[DT_STR]"로 변경하면 "text stream[DT_TEXT]" 필드의 크기가 크게 증가하므로 잘라내기 오류가 발생하지 않을 가능성이 높습니다.

언급URL : https://stackoverflow.com/questions/1039385/truncation-errors-importing-to-sql-server-2005-from-excel

반응형