Problema
Desea importar un archivo de texto de ancho fijo
en SQL Server.
Solución
Crear un paquete SSIS y definir un Data Flow
usando un administrador de conexión Flat File configurado para aceptar archivos
de ancho fijo. A continuación se explica cómo se puede hacer esto.
1.
Crear un
paquete SSIS, preparando un origen Flat File y un destino OLEDB.
2.
Crear un
administrador de conexión OLEDB conectando a BDBlog_Staging y llámelo BDBlog_Staging_OLEDB.
3. Crear un administrador de conexión para el
archivo plano, dando clic derecho en la pestaña Connection Managers y
seleccionando New Flat File Connection.
Archivo de Texto: StockAnchoFijo.txt
5. Visualice el panel Columns haciendo clic en
Columns en la izquierda de la caja de diálogo. Debería ver algo como en la figura.
7. Desplácese hacia la izquierda y la derecha a
través de los datos. Agregue los delimitadores de columna que necesite haciendo
clic en la regla. Debe terminar con algo como en la figura.
9.
Conecte el
origen Flat File a la salida OLEDB.
10. Configure la salida OLEDB para utilizar el
administrador de conexión BDBlog_Staging_OLEDB.
11. Añadir las asignaciones de columna y seleccione
o cree una tabla de datos y ejecute el paquete de importación.
Funcionamiento
En ocasiones, puede que tenga que hacer frente
a un archivo de ancho fijo que requiere importar a SQL Server. Esto es muy
similar a un archivo delimitado, excepto que tiene que decirle a SSIS donde la columna
se rompe. Todo lo que sabe es que el archivo de origen es completamente de
ancho fijo, que tiene las siguientes características:
·
Todas las
filas tienen el mismo ancho.
·
Todas las
columnas son de un ancho fijo (que puede variar para cada columna, por
supuesto).
·
No existe Retorno
de Carro / Avance de Línea (CR/LF) al final de cada fila.
Esto es muy similar a importar un archivo
delimitado. Como es el caso de los archivos delimitados, se puede establecer lo
siguiente:
·
Sea o no que
la primera fila contenga los nombres de columna
·
Las filas
de cabecera para saltar
·
El
delimitador de texto
·
Los
nombres de columnas
·
Los tipos de
datos de columnas
·
Anchos de columnas
de salida
Puede haber momentos en que necesite importar
un archivo plano donde todas las columnas son de ancho fijo a excepción de la última,
que puede ser de longitud variable o donde cada fila termina con un CR/LF. Esto
también se conoce como archivo de texto ragged
right. Esto hace a un archivo desigual por la derecha esencialmente un
archivo de texto de ancho fijo con una importante, y fundamental, diferencia. Cada
fila tiene una CR/LF al final. En todos los demás aspectos, el proceso de
importación es el mismo que para los orígenes de ancho fijo.
1 comentarios:
Este post es un ejemplo de un archivo plano de ancho fijo y un alcance de uno desigual por la derecha. espero les sea se utilidad.
Publicar un comentario