5 Pregunta: Error: 0xC0202009 en Tarea de flujo de datos, Destino OLE DB [43]: Código de error SSIS DTS_E_OLEDBERROR. Se ha producido un error OLE DB. Código de error: 0x80040E21

pregunta creada en Mon, Sep 30, 2013 12:00 AM

Mi origen es un origen de archivo plano TXT, el destino es de tipo OLE DB. (ver imagen)

ingrese la descripción de la imagen aquí

He encontrado un muy tutorial básico en el Proyecto de código para crear un paquete. Terminé los pasos pero al depurar me sale un error extraño (abajo):

¿Alguien puede dar una explicación a este error? Me llevó horas buscar el error en la web.

  

paquete SSIS   "C: \Users \USRNAME \Desktop \Projects \DataGeneratorSsis \DataGeneratorSsis \Package.dtsx"   comenzando. Información: 0x4004300A en Data Flow Task, SSIS.Pipeline:   Comienza la fase de validación. Información: 0x4004300A en flujo de datos   Tarea, SSIS. Canalización: comienza la fase de validación. Advertencia:   0x80047076 en Tarea de flujo de datos, SSIS.Pipeline: la columna de salida   "intApplication" (7) en la salida "Flat File Source Output" (6) y   el componente "Fuente de archivo plano" (2) no se usa posteriormente en los Datos   Tarea de flujo. La eliminación de esta columna de salida no utilizada puede aumentar el flujo de datos   desempeño de habilidades. Información: 0x40043006 en la tarea de flujo de datos,   SSIS.Pipeline: Comienza la fase de preparación para la ejecución. Información:   0x40043007 en Tarea de flujo de datos, SSIS. Canalización: la fase previa a la ejecución es   comenzando. Información: 0x402090DC en Tarea de flujo de datos, Fuente de archivo plano    2 : el procesamiento de el archivo "C: \Users \USRNAME \Desktop \ddd.txt" tiene   empezado. Información: 0x4004300C en Tarea de flujo de datos, SSIS. Canalización:   La fase de ejecución está comenzando. Información: 0x402090DE en la tarea de flujo de datos,   Fuente de archivo sin formato 2 : El número total de filas de datos procesadas para el archivo   "C: \Users \USRNAME \Desktop \ddd.txt" es 2. Error: 0xC0202009 en los datos   Tarea de flujo, destino OLE DB [43]: Código de error SSIS DTS_E_OLEDBERROR.   Se ha producido un error OLE DB. Código de error: 0x80040E21. Un registro de OLE DB   está disponible. Fuente: "Microsoft SQL Server Native Client 11.0"   Hresult: 0x80040E21 Descripción: "Operación OLE DB de pasos múltiples   Errores generados. Compruebe cada valor de estado de OLE DB, si está disponible. No   se realizó el trabajo ". Error: 0xC020901C en Tarea de flujo de datos, OLE DB   Destino [43]: hubo un error con OLE DB   Destination.Inputs [OLE DB Destination Input] .Columns [AppID] en OLE DB   Destination.Inputs [OLE DB Destination Input]. El estado de la columna   devuelto fue: "El valor no se pudo convertir debido a un potencial   pérdida de datos ". Error: 0xC0209029 en Tarea de flujo de datos, OLE DB   Destino [43]: Código de error SSIS   DTS_E_INDUCEDTRANSFORMFAILUREONERROR. El "OLE DB"   Destination.Inputs [OLE DB Destination Input] "falló porque error   se produjo el código 0xC0209077 y la disposición de la fila de error en "OLE DB"   Destination.Inputs [OLE DB Destination Input] "especifica el error en   error. Se produjo un error en el objeto especificado del especificado.   componente. Puede haber mensajes de error publicados antes de esto con más   Información sobre el fallo. Error: 0xC0047022 en la tarea de flujo de datos,   SSIS.Pipeline: Código de error SSIS DTS_E_PROCESSINPUTFAILED. los   El método ProcessInput en el componente "OLE DB Destination" (43) falló con   código de error 0xC0209029 al procesar la entrada "Destino OLE DB   Entrada "(56). El componente identificado devolvió un error de la   Método ProcessInput. El error es específico del componente, pero   el error es fatal y hará que la tarea Flujo de datos deje de ejecutarse.   Puede haber mensajes de error publicados antes de esto con más información.   sobre el fracaso. Información: 0x40043008 en la tarea de flujo de datos,   SSIS.Pipeline: la fase posterior a la ejecución está comenzando. Información:   0x402090DD en Data Flow Task, Fuente de archivo sin formato 2 : el procesamiento de   el archivo "C: \Users \USRNAME \Desktop \ddd.txt" ha finalizado. Información:   0x4004300B en Tarea de flujo de datos, SSIS.Pipeline: "OLE DB Destination"   escribió 0 filas. Información: 0x40043009 en la tarea de flujo de datos,   SSIS.Pipeline: La fase de limpieza está comenzando. Tarea fallida: tarea de flujo de datos   Advertencia: 0x80019002 en el paquete: Código de advertencia SSIS   DTS_W_MAXIMUMERRORCOUNTREACHED. El método de ejecución tuvo éxito, pero   el número de errores planteados (4) alcanzó el máximo permitido (1);   dando como resultado el fracaso. Esto ocurre cuando el número de errores alcanza   el número especificado en MaximumErrorCount. Cambiar el   MaximumErrorCount o corregir los errores. Paquete SSIS   "C: \Users \USRNAME \Desktop \Projects \DataGeneratorSsis \DataGeneratorSsis \Package.dtsx"   terminado: fracaso.

El mensaje de error relevante

Se produjo un error con OLE DB Destination.Inputs [OLE DB Destination Input] .Columns [AppID] en OLE DB Destination.Inputs [OLE DB Destination Input]. El estado de la columna devuelto fue: "El valor no se pudo convertir debido a una posible pérdida de datos".

    
6
5 Respuestas                              5                         

Por lo tanto, este error se está produciendo porque tiene un valor en su origen para la columna AppID que no es válido para su columna AppID en el destino.

Algunos ejemplos posibles:

  • Estás intentando insertar un valor de 10 caracteres en un campo de 8 caracteres.
  • Estás tratando de insertar un valor mayor a 127 en un campo tinyint.
  • Está intentando insertar el valor 6.4578 en un campo decimal (5,1).

SSIS se rige por los metadatos, y espera que haya configurado sus entradas y salidas correctamente, de modo que los valores aceptables para ambos estén dentro del mismo rango.

    
9
2017-01-10 21: 56: 57Z
  1. Agregué la solución específica además de esta respuesta, ¿por qué la eliminaste?
    2013-10-03 13: 44: 10Z
  2. No lo eliminé, alguien más revisó tu edición y la rechazó. No estoy completamente seguro de por qué.
    2013-10-04 01: 59: 29Z

Esto suele deberse a un truncamiento (el valor entrante es demasiado grande para caber en la columna de destino). Desafortunadamente, SSIS no le dirá el nombre de la columna ofensiva. Utilizo un componente de terceros para obtener esta información: http://naseermuhammed.wordpress.com/tips-tricks/getting-error-column-name-in-ssis/

    
1
2013-10-03 15: 06: 01Z

También es posible recibir este error desde un componente seleccionado si la consulta falla de una manera inusual (por ejemplo, una consulta secundaria devuelve varias filas en una conexión orledb oracle)

    
0
2014-12-05 01: 50: 14Z

En mi caso, la cuenta del sistema subyacente a través de la cual se ejecutaba el paquete estaba bloqueada. Una vez que conseguimos desbloquear la cuenta del sistema y volver a ejecutar el paquete, se ejecutó correctamente. El desarrollador dijo que se enteró de esto mientras hacía la depuración en la que intentó conectarse directamente al servidor y verificar el estado de la conexión.

    
0
2016-03-09 12: 20: 31Z

Error jet 4 oledb Puede ser posible actualizar kb4041678 kb4041681

    
0
2017-11-10 20: 36: 52Z
  1. ¿Se pueden agregar más detalles?
    2017-11-10 20: 47: 20Z
fuente colocada aquí