CORRECÇÃO: Erros de 0xC02020A1, 0xC020902A, 0xC0202092 e 0xC0047038 podem ocorrer ao mesmo tempo quando tenta executar um pacote SSIS 2005 se utilizar delimitadores de coluna de vários carateres numa origem de ficheiro simples

Tenha em conta o seguinte cenário:

  • Criar um pacote SQL Server 2005 Integration Services (SSIS) no Business Intelligence Development Studio (BIDS).
  • Utilize uma origem de Ficheiro Simples para ler dados de um ficheiro de texto numa tarefa de fluxo de dados.
  • Utilize um delimitador de colunas com vários carateres na origem de Ficheiro simples. Por exemplo, o delimitador de colunas com vários carateres é uma cadeia de carateres com três carateres universais (~~~).
  • O ficheiro de texto contém uma grande quantidade de dados. Por exemplo, o ficheiro de texto contém mais de 20 000 registos.
  • Executar o pacote SSIS.

Neste cenário, o pacote SSIS poderá falhar. Além disso, recebe as seguintes mensagens de erro:

Nota

  • Erro: 0xC02020A1 em Fluxo de Dados Tarefa, Origem de Ficheiro Simples [1]: Falha na conversão de dados. A conversão de dados para a coluna "<column_name>" devolveu o valor de estado 4 e o texto de estado "O texto foi truncado ou um ou mais carateres não tinham correspondência na página de código de destino.".
  • Erro: 0xC020902A em Fluxo de Dados Tarefa, Origem de Ficheiro Simples [1]: A "coluna de saída "<column_name>" (199)" falhou porque ocorreu truncamento e a disposição da linha de truncamento na "coluna de saída "<column_name>" (199)" especifica falha no truncamento. Ocorreu um erro de truncamento no objeto especificado do componente especificado.
  • Erro: 0xC0202092 em Fluxo de Dados Tarefa, Origem de Ficheiro Simples [1]: Ocorreu um erro ao processar o ficheiro "<path_of_the_flat_file>" na linha< de dados row_number>.
  • Erro: 0xC0047038 em Fluxo de Dados Tarefa, SSIS. Pipeline: Código de erro SSIS DTS_E_PRIMEOUTPUTFAILED. O método PrimeOutput no componente "Flat File Source" (1) retornou o código de erro 0xC0202092. O componente retornou um código de falha quando o mecanismo de pipeline chamado PrimeOutput(). O significado do código de falha é definido pelo componente, mas o erro é fatal e o pipeline parou de ser executado. Pode haver mensagens de erro postadas antes disso com mais informações sobre a falha.

    

Sintomas

Este problema ocorre porque as memórias intermédias de entrada para o analisador de ficheiro simples dividem incorretamente o delimitador de vários carateres em duas partes.

Causa

Informações do service pack

Para resolver este problema, obtenha o service pack mais recente para o SQL Server 2005.

Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:

913089 Como obter o service pack mais recente para o SQL Server 2005

Resolução

A Microsoft confirmou que se trata de um problema nos produtos Microsoft listados na secção "Aplica-se a".

Estado