visual tutorial studio imagenes how for beginners ssis

tutorial - ssis visual studio 2017



SSIS no se puede convertir debido a una posible pérdida de datos (4)

Para mí, simplemente eliminé el origen de OLE DB de SSIS y lo agregué nuevamente. ¡Trabajó!

Tengo un paquete de SSIS que importa desde un documento de Excel a una tabla de base de datos. Estoy recibiendo los siguientes errores:

[Excel Source [1]] Error: There was an error with output column "ShipTo" (47) on output "Excel Source Output" (9). The column status returned was: "The value could not be converted because of a potential loss of data.". [Excel Source [1]] Error: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR. The "output column "ShipTo" (47)" failed because error code 0xC0209072 occurred, and the error row disposition on "output column "ShipTo" (47)" specifies failure on error. An error occurred on the specified object of the specified component. There may be error messages posted before this with more information about the failure. [SSIS.Pipeline] Error: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. The PrimeOutput method on component "Excel Source" (1) returned error code 0xC0209029. The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing. There may be error messages posted before this with more information about the failure.

He leído y he encontrado artículos para asegurar que mis tipos de datos coincidan, y lo he hecho. En el documento Excel, hay 184 filas, y en la columna que se enumera en estos errores (shipto) todas tienen el mismo valor y es "Todo". Me encontré con la última vez que lo ejecuté, pero solo tenía 4 filas que contenían "Todo", así que solo ingresé esos valores manualmente, pero esta vez no será muy eficiente.

En la tabla de destino, la columna ShipTo es Varchar (20), por lo que no veo que el tamaño sea un problema ya que se trata de una de tres cosas: 1 dígito, 2 dígitos o la palabra Todos.

¿Alguien tiene alguna idea adicional que yo pueda probar? Cualquier ayuda es muy apreciada. Gracias a cualquiera que pueda ofrecer cualquier ayuda.


Cuando configura por primera vez este paquete, supongo que un número de uno o dos dígitos fue el primer valor en la columna Enviar a. La lectura de su paquete de Excel seleccionó un tipo numérico para ese campo de entrada y la palabra "ALL" falla el paquete ya que la especificación de entrada para ese campo es numérica. Hay varias formas de solucionar esto de antemano, pero para solucionarlo después, la forma más fácil es hacer clic con el botón derecho en la Fuente de Excel y seleccionar Mostrar Editor Avanzado ... Desde allí, elija la pestaña que dice Propiedades de Entrada y Salida. En la parte superior de la sección de entradas y salidas de ese cuadro de diálogo, busque la columna ShipTo. Tendrás que desglosar para encontrarlo. Establezca DataType en "cadena [DT_STR]" y la longitud en 20.

Haga clic en Aceptar y luego intente ejecutar su paquete nuevamente.


Tuve el mismo problema, múltiples valores de tipo de datos en una columna, el paquete solo carga valores numéricos. Permanece todo actualizado como nulo.

Solución

Para solucionar esto, cambiar el tipo de datos de Excel es una de las soluciones. En Excel Copie los datos de la columna y péguelos en un archivo diferente. Elimine esa columna e inserte una nueva columna como Tipo de datos de texto y pegue los datos copiados en una nueva columna.

Ahora, en el paquete ssis, elimine y vuelva a crear la fuente de Excel y la tabla de destino, cambie el tipo de datos de la columna como varchar .

Esto funcionará