sql server - ¿Cómo procesar archivos de texto derechos irregulares con muchas columnas suprimidas en SSIS u otra herramienta?
sql-server text-files (2)
Creo que la solución propuesta parece razonable. El espacio en disco es barato. Es perfectamente aceptable tener un proceso de dos pasos en el que se limpia el formato antes de importar los datos.
La opción de archivo plano derecho desigual es ideal para un único campo final terminado con un CRLF, pero cuando se suprime cualquier número de campos finales que están en blanco y la línea termina antes de tiempo con CRLF, no he encontrado alternativa en SSIS, pero para leer algunos columnas con una sola columna "REMAINDER" y luego utilizó una transformación Derived Column con operaciones SUBSTRING para extraer las columnas "opcionales" una por una.
Una posibilidad que se me ha ocurrido es si hay alguna manera de pasar la línea a través de un componente "padding" dentro de SSIS antes de que el administrador de conexión lo tenga. Luego, puede obtener todos los beneficios de usar el administrador de conexión para configurar las longitudes de columna entrantes. Siempre pude crear un programa externo (o un flujo de datos SSIS completamente separado) para pasar un archivo a través del cual rellenaría cada fila con espacios (y con desigual derecha, simplemente agregando el mismo número mínimo de espacios para dar cuenta de todos los campos suprimidos a cada línea sería suficiente), pero parece bastante desperdicio de espacio en disco y también requiere que el archivo se lea (y escriba) completamente una vez más.
Alternativamente, tal vez exista un componente de fuente de datos de terceros que simplemente sea NULO o en blanco y columnas automáticamente si la línea termina antes de tiempo.
¿Alguna otra opción?
Use un componente de script para separar la columna como fuente de datos.