SQL Command exécute une ou plusieurs commandes SQL pour chaque enregistrement dans le dataflow. Vous pouvez utiliser SQL Command pour effectuer les tâches suivantes :
- Exécuter des instructions INSERT/UPDATE complexes, comme des instructions comportant des sous-requêtes/jointures avec d'autres tables
- Mettre des tables à jour après y avoir inséré/mis à jour des données pour conserver l'intégrité du référentiel
- Mettre à jour ou supprimer un enregistrement dans une base de données avant le chargement d'un enregistrement de remplacement
- Mettre plusieurs tables à jour en une seule transaction
Vous pouvez exécuter des commandes SQL supplémentaires avant et après l'exécution des commandes SQL principales, ainsi qu'appeler des procédures stockées.
Call
<Nom de la procédure>
Les procédures stockées appelées à partir de SQL Command ne doivent pas utiliser de paramètres OUT.
Général
L'onglet Général permet d'indiquer les instructions SQL dynamiques à exécuter une fois pour chaque enregistrement. La table suivante répertorie les options disponibles dans l'onglet Général.
Option | Description |
---|---|
Connexion |
Sélectionnez la connexion de base de données à utiliser. Vos choix varient en fonction des connexions qui sont définies dans le Gestionnaire de connexion de Spectrum Management Console. Si vous devez établir une nouvelle connexion à la base de données, ou en modifier ou supprimer une existante, cliquez sur Gérer connexions. Si vous ajoutez ou modifiez une connexion de base de données, remplissez ces champs :
|
Instructions SQL |
Saisissez les instructions SQL à exécuter pour chaque enregistrement dans le dataflow. Lorsque vous commencez à taper, une fenêtre contextuelle renseignée automatiquement affichera les commandes SQL valides. Séparez les instructions SQL par un point virgule (;). Pour spécifier une valeur d'un champ de dataflow, utilisez la syntaxe suivante :
Où Par exemple, Dans cet exemple, Remarque : Les requêtes doivent utiliser le nom entièrement qualifié. Il peut s'agir par exemple de MyDatabase.dbo.customer.
|
Traitement de la transaction |
Indique si les enregistrements doivent être traités par lots ou tous à la fois. L'une de ces valeurs :
|
Traitement de l'erreur |
Indique ce qu'il faut faire si une erreur est détectée lors de l'exécution des commandes SQL. L'un des éléments suivants :
Remarque : En cas d'erreur de syntaxe dans le SQL, le dataflow se terminera toujours quel que soit le paramètre que vous choisissez ici.
En outre, vous pouvez éventuellement écrire des enregistrements d'erreur dans un récepteur en connectant le port d'erreur SQL Command au type de récepteur de votre choix. Le port d'erreur est le triangle blanc à droit de l'icône du stage dans le dataflow. Par exemple, pour écrire des enregistrements d'erreur dans un fichier plat, vous devez connecter le port d'erreur SQL Command à un stage Write to File, comme indiqué ici : . |
SQL avant/après traitement
L'onglet SQL avant/après traitement permet d'indiquer les instructions SQL à exécuter une fois par exécution de dataflow, et non une fois par enregistrement comme c'est le cas avec le SQL que vous indiquez dans l'onglet Général. La table suivante répertorie les options disponibles dans l'onglet SQL avant/après traitement.
Option | Description |
---|---|
SQL avant traitement |
Saisissez au moins une instruction SQL à exécuter avant de traiter les enregistrements entrant dans le stage. Les instructions SQL que vous saisissez ici sont exécutées une fois par exécution après que le dataflow démarre son exécution et avant que le stage SQL Command ne traite les premiers enregistrements. Un exemple d'utilisation du SQL avant traitement serait de créer une table pour les enregistrements qui seront traités. |
Validation automatique des instructions SQL avant traitement |
Cochez cette case pour valider les instructions SQL avant traitement, avant d'exécuter les instructions SQL dans l'onglet Général. SI vous ne cochez pas cette case, les instructions SQL avant traitement seront validées dans la même transaction que les instructions SQL dans l'onglet Général. Remarque : Si vous ne cochez ni la case Validation automatique des instructions SQL avant traitement ni Validation automatique des instructions SQL après traitement, toutes les instructions SQL du stage sont validées dans une transaction.
|
SQL après traitement |
Saisissez au moins une instruction SQL à exécuter une fois tous les enregistrements traités. Les instructions SQL que vous saisissez ici sont exécutées une fois par exécution après que le stage SQL Command est terminé mais avant que le dataflow ne se termine. Un exemple d'utilisation du SQL avant traitement serait de créer un index après le traitement des enregistrements. |
Validation automatique des instructions SQL après traitement |
Cochez cette case pour valider les instructions SQL après traitement dans leur propre transaction après que les commandes SQL dans l'onglet Général sont validées. SI vous ne cochez pas cette case, les instructions SQL après traitement seront validées dans la même transaction que les instructions SQL dans l'onglet Général. Remarque : Si vous ne cochez ni la case Validation automatique des instructions SQL avant traitement ni Validation automatique des instructions SQL après traitement, toutes les instructions SQL du stage sont validées dans une transaction.
|
L'onglet Exécution
L'onglet Exécution affiche Options de stage et vous offre la possibilité de définir les valeurs par défaut des options de stage.
Nom du champ |
Description |
---|---|
Options d'étape | Cette section répertorie les options de dataflow utilisées dans la requête SQL de ce stage et vous permet de fournir une valeur par défaut pour toutes ces options. La colonne Nom répertorie les options, tandis que vous pouvez saisir les valeurs par défaut dans la colonne Valeur correspondante.
Remarque : La valeur par défaut fournie ici est également affichée dans la section Map dataflow options to stages de la boîte de dialogue Options de dataflow. La boîte de dialogue vous permet également de modifier la valeur par défaut. En cas de conflit des valeurs par défaut fournies pour une option via Options de stage, Options de dataflow et Job Executor, l’ordre de priorité est le suivant : valeur fournie via Job Executor > valeur définie via la boîte de dialogue Options de dataflow > valeur saisie via Options de stage.
|