Anuncios

IT Certification Category (Spanish)468x60

lunes, 12 de octubre de 2015

Paso de parámetros vía linea de comandos en SSIS


En SQL Server Integration Services (SSIS), mucha gente aprende, pero le cuesta llegar a poder recibir parámetros. En este ejemplo voy a copiar datos de una tabla origen a una tabla destino especificando el ID como parámetro. Luego voy a llamar al paquete desde el cmd (la línea de comandos y pasarle el parámetro).

Para este ejemplo, estoy usando la base de datos adventureworks, pero usted puede adaptar el ejemplo a cualquier tabla de cualquier base de datos. 

El paquete es un simple Data Flow y dentro del Data Flow se tiene un OLE DB Source y un OLE DB Destination:





Vamos a tener una variable con el valor del ID a especificar y la otra variable contendrá la expresión con la sentencia..



La expresión adjuntará la consulta a un parámetro. En este caso la consulta es la siguiente:
"SELECT [BusinessEntityID]       ,[NationalIDNumber]       
FROM [HumanResources].[Employee] 
where [BusinessEntityID]= "+ @[User::Variable1]

Donde User Variable es la otra variable que contiene el ID. Estamos mostrando el BusinessEntityID y el NationalIDNumber de la tabla Employee cuyo BusinessEntityID es igual a una variable.


En el source hay que utilizar, SQL command from variable para recibir variables en los comandos. Es decir que el comando o la sentencia select permita recibir parámetros. Para eso se usa una variable.


El resto es crear la tabla destino. 


Finalmente, para ejecutar el paquete en la línea de comandos le vamos a pasar el valor de 9 al parámetro creado. Hay que tener extremado cuidado con las mayúsculas y minúsculas. Esta línea de comandos es extremadamente sencilla.

dtexec /F "c:\script2\Package.dtsx" /set \package.variables[Variable1].Value;9 

People who read this post also read :