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


Mi fuente es un TXT Flat File Source, el Destination es de tipo OLE DB. (ver imagen)

enter image description here

Encontré una muy tutorial básico sobre Code Project para crear un paquete Terminé los pasos, pero al depurar obtengo un extraño error (abajo):

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

Paquete SSIS   "C: \ Users \ USRNAME \ Desktop \ Projects \ DataGeneratorSsis \ DataGeneratorSsis \ Package.dtsx"   comenzando. Información: 0x4004300A en Data Flow Task, SSIS.Pipeline:   La fase de validación está comenzando. Información: 0x4004300A en Data Flow   Tarea, SSIS. Canalización: comienza la fase de validación. Advertencia:   0x80047076 en Data Flow Task, 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 Data Flow Task, Flat File Source    2: El procesamiento del archivo "C: \ Users \ USRNAME \ Desktop \ ddd.txt" tiene   empezado. Información: 0x4004300C en Data Flow Task, SSIS.Pipeline:   La fase de ejecución está comenzando. Información: 0x402090DE en la tarea de flujo de datos,   Fuente de archivo plano 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 OLE DB   está disponible. Fuente: "Microsoft SQL Server Native Client 11.0"   Hresult: 0x80040E21 Descripción: "Operación OLE DB de varios pasos   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 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 de la especificada   componente. Puede haber mensajes de error publicados antes de esto con más   información sobre el fracaso. Error: 0xC0047022 en la tarea de flujo de datos,   Canalización SSIS: 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 "OLE DB Destination   Entrada "(56). El componente identificado devolvió un error de la   Método ProcessInput. El error es específico del componente, pero el   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 la tarea de flujo de datos, fuente de archivo plano 2: El procesamiento de   El archivo "C: \ Users \ USRNAME \ Desktop \ ddd.txt" ha finalizado. Información:   0x4004300B en la tarea de flujo de datos, SSIS.Pipeline: "OLE DB Destination"   escribió 0 filas. Información: 0x40043009 en Data Flow Task,   SSIS.Pipeline: la fase de limpieza está comenzando. Tarea fallida: tarea de flujo de datos   Advertencia: 0x80019002 en el paquete: Código de advertencia de 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 llega el número de errores   el número especificado en MaximumErrorCount. Cambiar el   MaximumErrorCount o corrige los errores. Paquete SSIS   "C: \ Users \ USRNAME \ Desktop \ Projects \ DataGeneratorSsis \ DataGeneratorSsis \ Package.dtsx"   Terminado: Fracaso.

El mensaje de error relevante

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


5
2017-09-30 11:42


origen


Respuestas:


Por lo tanto, este error se produce porque tiene un valor en su fuente para la columna de ID de aplicación que no es válido para su columna de ID de aplicación en el destino.

Algunos ejemplos posibles:

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

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


8
2017-09-30 15:47



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


1
2017-10-03 15:06



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


0
2017-12-05 01:50



En mi caso, la cuenta del sistema subyacente a través de la cual se ejecutaba el paquete estaba bloqueada. Una vez que obtuvimos la cuenta del sistema desbloqueada y reordenamos el paquete, se ejecutó con éxito. El desarrollador dijo que se enteró de esto mientras hacía la depuración en la que intentaba conectarse directamente al servidor y verificar el estado de la conexión.


0
2018-03-09 12:20



Error jet 4 oledb Se puede actualizar kb4041678 kb4041681


0
2017-11-10 20:36