2016/02/02

SSIS, NOMBRES DE ARCHIVOS ALMACENADOS EN BD

PROBLEMA
Requerimos generar archivos desde SSIS que a su vez los nombres de estos se encuentren definidos ya en una tabla de SQL SERVER, y que podamos modificarlo de acuerdo a nuestro criterio, que puedo hacer?

SOLUCION
Como ya les he explicado en artículos anteriores ( USANDO FOREACH LOOP CONTAINER EN SSIS y SSIS, GENERANDO ARCHIVOS CON NOMBRES DINAMICOS ), vamos a combinar lo practicado en estos dos artículos, requerimos extraer los nombres de los archivos desde SQL SERVER, leer el resultado con un objeto FOR EACH LOOP CONTAINER, después depositar el nombre en una variable de SSIS y por ultimo conectar dicha variable a la propiedad ConnectionString de la conexión, bien, hagamoslo.

Nuestro primer paso será crear una tabla que contendrá los nombres de los archivos, la Base de datos donde creare dicha tabla es la de ejemplo AdventureWorks:
IF OBJECT_ID( 'dbo.nombreArchivos' ) IS NOT NULL
 DROP TABLE dbo.nombreArchivos; 

CREATE TABLE dbo.nombreArchivos( 
 cveNombreArchivos TINYINT IDENTITY(1,1)
 , nombreArchivo VARCHAR(100)
) 

INSERT INTO dbo.nombreArchivos( nombreArchivo ) 
VALUES( 'windows.txt' ) 
, ( 'sqlServer.asd' )
, ( 'managementStudio.qwe' ) 
, ( 'azureDatabase.ops' )
, ( 'integrationServices.pin' )

SELECT * FROM dbo.nombreArchivos

Nuevamente, con la BD de ejemplo AdventureWorks, de donde extraeremos la información será la tabla Production.Location
Primero necesitamos realizar la conexión a nuestra BD para poder hacer las consultas necesarias, en este caso utilizaré un OLE DB Connection Manager


Creamos la variable que almacenará el contenido del resultado de la consulta de los nombres de los archivos

Procedemos a realizar la consulta y capturar el resultado en la variable de tipo Object resultSet:



Una vez almacenada nuestra consulta en una variable, procederemos a recorrer dicho resultado utilizando un bucle.


Creamos un Data Flow Task para realizar el proceso de carga.



Bien esto fue de la parte de la fuente, ahora vamos con la parte del destino. Primero necesitamos preparar la conexión destino.





Como siguiente paso, ahora arrastramos un Flat File Destination el cual configuraremos de la siguiente manera:


Y nuestro paquete quedara asi:


Y eso es todo, espero que les sirva.

SALUDOS
COMPARTE ESTA INFORMACION SI TE PARECIO INTERESANTE

0 comentarios:

Publicar un comentario