Passer des variables en tant que paramètres dans la tâche d'exécution SQL SSIS
L'implication de plusieurs opérations de base de données dans un package SSIS nécessite souvent le réglage dynamique des paramètres SQL. Exécuter une tâche SQL dans SSIS fournit une méthode pratique pour y parvenir.
Supposons que vous disposiez d'un package SSIS qui récupère les données d'un fichier plat et les insère dans une table de base de données, en utilisant une tâche d'exécution SQL pour créer une table temporaire. en utilisant une requête paramétrée. Votre objectif est de rendre la requête dynamique en transmettant des paramètres qui spécifient la date, l'ID de portefeuille et le type d'action en tant que variables.
Pour accomplir cela dans la tâche d'exécution SQL :
1. Définissez SQLSourceType sur Direct Input
Cela indique que la propriété SQL Statement spécifiera directement la requête SQL.
2. Définir les paramètres de variable dans l'instruction SQL
Modifiez l'instruction SQL pour utiliser des points d'interrogation (?) comme espaces réservés pour les paramètres. Par exemple :
CREATE TABLE [tempdb].dbo.##temptable ( date datetime, companyname nvarchar(50), price decimal(10,0), PortfolioId int, stype nvarchar(50) ) Insert into [tempdb].dbo.##temptable (date,companyname,price,PortfolioId,stype) SELECT date,companyname,price,PortfolioId,stype FROM ProgressNAV WHERE (Date = ?) AND (PortfolioId = ?) AND (stype in (?)) ORDER BY CompanyName
3. Mapper les variables aux paramètres
Dans la section Mappage des paramètres de l'éditeur de tâche d'exécution SQL, ajoutez chaque paramètre de l'instruction SQL. Ensuite, mappez chaque paramètre à sa variable SSIS correspondante :
| Parameter | SSIS Variable | |---|---| | Date | @Date | | PortfolioId | @PortfolioId | | stype | @Stypet |
4. Exécutez la tâche
Lors de l'exécution, la tâche d'exécution SQL injectera les valeurs attribuées à ces variables dans la requête, garantissant que les données appropriées sont récupérées et insérées dans la table temporaire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!