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
0 nhận xét:
Đăng nhận xét