CORRECCIÓN: Los errores 0xC02020A1, 0xC020902A, 0xC0202092 y 0xC0047038 pueden producirse al mismo tiempo al intentar ejecutar un paquete SSIS 2005 si usa delimitadores de columna de varios caracteres en un origen de archivo plano

Tenga en cuenta el siguiente escenario:

  • Crea un paquete de SQL Server 2005 Integration Services (SSIS) en Business Intelligence Development Studio (BIDS).
  • Use un origen de archivo plano para leer datos de un archivo de texto en una tarea de flujo de datos.
  • Usa un delimitador de columna de varios caracteres en el origen del archivo plano. Por ejemplo, el delimitador de columna de varios caracteres es una cadena de tres caracteres de tilde (~~~).
  • El archivo de texto contiene una gran cantidad de datos. Por ejemplo, el archivo de texto contiene más de 20 000 registros.
  • Ejecute el paquete SSIS.

En esta situación, es posible que se produzca un error en el paquete SSIS. Además, recibe los siguientes mensajes de error:

Nota

  • Error: 0xC02020A1 en Data Flow tarea, origen de archivo plano [1]: Error en la conversión de datos. La conversión de datos de la columna "<column_name>" devolvió el valor de estado 4 y el texto de estado "El texto se truncó o uno o más caracteres no coincidieron en la página de códigos de destino".
  • Error: 0xC020902A en Data Flow tarea, archivo plano Origen [1]: La "columna de salida "<column_name>" (199)" no se pudo realizar el truncamiento y la disposición de la fila de truncamiento en la "columna de salida "<column_name>" (199)" especifica un error en el truncamiento. Se ha producido un error de truncamiento en el objeto especificado del componente especificado.
  • Error: 0xC0202092 en Data Flow tarea, archivo plano Origen [1]: Se produjo un error al procesar el archivo "<path_of_the_flat_file>" en la fila <de datos row_number>.
  • Error: 0xC0047038 en Data Flow tarea, SSIS. Canalización: Código de error SSIS DTS_E_PRIMEOUTPUTFAILED. El método PrimeOutput en el componente "Fuente de archivo plano" (1) devolvió el código de error 0xC0202092. El componente devolvió un código de falla cuando el motor de canalización llamó a PrimeOutput(). El significado del código de error lo define el componente, pero el error es irrecuperable y la canalización dejó de ejecutarse. Es posible que haya mensajes de error publicados antes de esto con más información sobre el error.

    

Síntomas

Este problema se produce porque los búferes de entrada del analizador de archivos planos dividen incorrectamente el delimitador de varios caracteres en dos partes.

Causa

Información del Service Pack

Para resolver este problema, obtenga el Service Pack más reciente para SQL Server 2005.

Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

913089 Cómo obtener el Service Pack más reciente para SQL Server 2005

Resolución

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Estado