Configuración dinámica del comando SQL

Cuando no tenemos problemas con los metadatos y el objeto DataReader Source puede ser utilizado, podemos modificar la sentencia SQL de forma dinámica. Para realizar este tipo de configuración necesitamos tener una variable definida a nivel de paquete.

Acceso ODBC a fuentes de datos mediante Integration Services II

Mediante una tara de script actualizaremos el contenido de dicha variable para que contenga la sentencia SQL que deseamos ejecutar contra la fuente de datos a través del conector ODBC. En nuestro ejemplo vamos a generar una sentencia que va a devolver los clientes modificados en el mes de carga. El mes a cargar está almacenado en otra variable del paquete y será pasada como variable de lectura a la tarea de script. La variable MiComandoSQL se pasará como variable de lectura escritura.

Acceso ODBC a fuentes de datos mediante Integration Services II

El script a generar será tan sencillo como sigue:

         Public Sub Main()        

        ‘ Add your code here

Dts.Variables(“MiComandoSQL”).Value = “SELECT [IdCustomer]” + _

“,[CustomerName]” + _

“,[EarningIncome]” + _

“,[IsActive]” + _

“,[ModifiedDate]” + _

“FROM [Demos].[dbo].[Customer]” + _

“WHERE Month(ModifiedDate) = “ + _

                                Dts.Variables(“MesCarga”).Value.ToString

        Dts.TaskResult = Dts.Results.Success

    End Sub

 

Para que nuestro conector ODBC reciba el contenido de la variable tenemos que hacerlo a través de las expresiones de la tarea de flujo de datos donde está incrustrado. Cuando expandimos dichas expresiones del flujo de datos veremos que, además de las propiedades de la tarea de flujo de datos, también aparece la propiedad ‘SQL Command’ de nuestro conector Data Reader.

Acceso ODBC a fuentes de datos mediante Integration Services II

 

Para evitar errores en la etapa de depuración del paquete es recomendable poner la propiedad DelayValidation a TRUE en la tarea de flujo de datos que contiene el conector ODBC.

En este momento nuestro paquete tiene dos tareas en el flujo de control (una tarea script que genera el comando SQL a ejecutar y el flujo de datos que va a traer la información). En el flujo de datos vamos a poner un destino Trash y vamos a añadir un visualizador de datos para comprobar que solo estamos trayendo aquellos registros que hemos definido a través de la variable MesCarga (que en nuestro caso tiene el valor 12)

Acceso ODBC a fuentes de datos mediante Integration Services II Acceso ODBC a fuentes de datos mediante Integration Services II

Al ejecutar el paquete el visualizador de datos nos va a mostrar solo aquellos registros traídos por nuestro comando SQL dinámico, es decir, los registros correspondientes al mes de Diciembre.

Acceso ODBC a fuentes de datos mediante Integration Services II

 

0 Shares:
Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You May Also Like
Leer más

Power BI Report Page Tooltips

Mostraremos cómo se pueden crear Toolips personalizados con el objetivo de enriquecer nuestros informes permitiendo que los usuarios tengan acceso a información más detalla, estos "report page tooltips" se definirán en otra hoja y serán fácilmente accedidos solo poniendo el ratón sobre un visual del informe, además con la ventaja que estos tooltips pueden ser re-utilizable para todas las visualizaciones del reporte.
Leer más

SQL Server 2017 en Linux

Vale, SQL Server 2017 corre en Linux, ¿me interesa? Sí, ¿por qué? Porque no hablamos simplemente de que corra un nuevo sistema operativo...sino que se pueden utilizar para despliegues rápidos en entornos escalables basados en docker, kubernetes, etc. Daremos un repaso a cómo aprovecharnos de los nuevos escenarios de despliegue en nuestras empresas, aunque sean tradicionalmente entornos Microsoft.