Syntaxe (SSIS)
La syntaxe des expressions Integration Services est similaire à la syntaxe utilisée par les langages C et C#. Les expressions comprennent des éléments tels que des identificateurs (colonnes et variables), des littéraux, des opérateurs et des fonctions. Cette rubrique récapitule les contraintes de la syntaxe de l'évaluateur d'expression applicables aux différents éléments d'une expression.
Pour des exemples d'expression utilisant des opérateurs et des fonctions spécifiques, consultez la rubrique relative à chaque opérateur et fonction dans les rubriques Opérateurs (SSIS) et Fonctions (SSIS).
Pour des exemples d'expression utilisant plusieurs opérateurs et fonctions ainsi que des identificateurs et des littéraux, consultez Expressions Integration Services avancées.
Pour des exemples d'expression à utiliser dans des expressions de propriété, consultez Utilisation des expressions de propriété dans des packages.
Dans certains cas, Integration Services limite la longueur des expressions à 4000 caractères. Si le résultat d'une expression est de type Integration Services DT_WSTR ou DT_STR, l'expression sera tronquée à 4000 caractères. Si le résultat d'une sous-expression est de type DT_STR ou DT_WSTR, cette sous-expression sera également tronquée à 4000 caractères, quel que soit le type de résultat de l'expression globale.
Les troncations sont gérées différemment selon le composant Integration Services dans lequel elles se produisent.
Dans les transformations de type colonne dérivée ou fractionnement conditionnel, la troncation peut être gérée normalement. On peut en effet configurer ces transformations de manière qu'elles ignorent les troncations ou utilisent une sortie d'erreur pour rediriger les lignes de données qui provoquent une troncation vers une sortie différente.
Dans le runtime, la troncation des expressions utilisées pour définir les valeurs des expressions de propriété, des variables et des contraintes de propriété constitue une erreur et peut entraîner l'échec du package.
Au moment de la conception, la troncation d'un littéral de chaîne génère un avertissement si elle se produit dans le pipeline, et une erreur si elle se produit dans le runtime.
Identificateurs
Les expressions peuvent comprendre des identificateurs de colonne et de variable. Les colonnes peuvent provenir de la source de données ou être créées par des transformations dans le flux de données. Les expressions peuvent utiliser des identificateurs de lignage pour faire référence aux colonnes. Les identificateurs de lignage sont des nombres qui identifient de manière unique les éléments du package. Les identificateurs de lignage référencés dans une expression doivent être préfixés du signe dièse ( # ). Par exemple, l'identificateur de lignage 138 est référencé sous la forme « #138 ».
Les expressions peuvent contenir les variables système fournies par SSIS ainsi que des variables personnalisées. Les variables référencées dans une expression doivent comprendre le préfixe « @ ». Par exemple, la variable Counter est référencée sous la forme « @Counter ». Le caractère « @ » ne fait pas partie du nom de la variable ; il indique simplement à l'évaluateur d'expression que l'identificateur est une variable. Pour plus d'informations, consultez Identificateurs (Expressions SSIS).
Littéraux
Les expressions peuvent contenir des littéraux numériques, booléens et de chaîne. Les littéraux de chaîne utilisés dans les expressions doivent être placés entre guillemets. Les littéraux numériques et booléens ne prennent pas de guillemets. Le langage des expressions comprend des séquences d'échappement pour les caractères fréquemment placés en mode échappement. Pour plus d'informations, consultez Littéraux (SSIS).
Opérateurs
L'évaluateur d'expression fournit un ensemble d'opérateurs dont les fonctionnalités sont similaires à celles de l'ensemble des opérateurs de langages tels que Transact-SQL, C++ et C#. Toutefois, le langage des expressions comprend des opérateurs supplémentaires et utilise des symboles auxquels vous n'êtes peut-être pas habitué. Pour plus d'informations, consultez Opérateurs (SSIS).
Opérateur de résolution d'espace de noms
Les expressions utilisent l'opérateur de résolution d'espace de noms (::) pour lever toute ambiguïté sur les variables de même nom. Grâce à l'opérateur de résolution d'espace de noms, vous pouvez qualifier la variable avec son espace de noms, ce qui vous permet d'utiliser plusieurs variables du même nom dans un package.
Opérateur de conversion
L'opérateur de conversion convertit, d'un type de données vers un autre, les résultats des expressions, les valeurs des colonnes, les valeurs des variables et les constantes. L'opérateur de conversion fourni par le langage des expressions est similaire à celui des langages C et C#. Dans Transact-SQL, les fonctions CAST et CONVERT offrent cette fonctionnalité. La syntaxe de l'opérateur de conversion diffère de celles utilisées par les fonctions CAST et CONVERT dans les aspects suivants :
Elle peut utiliser une expression comme argument.
Elle ne comprend pas le mot clé CAST.
Elle ne comprend pas le mot clé AS.
Opérateur conditionnel
L'opérateur conditionnel retourne une des deux expressions en fonction de l'évaluation d'une expression booléenne. L'opérateur conditionnel fourni par le langage des expressions est similaire à celui des langages C et C#. Dans les expressions multidimensionnelles (MDX), la fonction IIF offre une fonctionnalité similaire.
Opérateurs logiques
Le langage des expressions prend en charge le caractère « ! » pour l'opérateur logique NOT. Dans Transact-SQL, l'opérateur « ! » est intégré à l'ensemble des opérateurs relationnels. Par exemple, Transact-SQL fournit les opérateurs « > » et « !> ». Le langage des expressions SSIS ne prend pas en charge la combinaison de l'opérateur « ! » avec d'autres opérateurs. Par exemple, vous ne pouvez pas combiner « ! » et « > » en « !> ». Toutefois, le langage des expressions prend en charge une combinaison de caractères intégrée « != » pour la comparaison « différent de » .
Opérateurs d'égalité
La grammaire de l'évaluateur d'expression fournit l'opérateur d'égalité « == ». Cet opérateur est l'équivalent de l'opérateur « = » dans Transact-SQL et de l'opérateur « == » dans C#.
Fonctions
Le langage des expressions comprend des fonctions de date et d'heure, des fonctions mathématiques et des fonctions de chaîne similaires aux fonctions Transact-SQL et aux méthodes C#.
Certaines fonctions portent le même nom que des fonctions Transact-SQL, mais leurs fonctionnalités diffèrent légèrement dans l'évaluateur d'expression.
Dans Transact-SQL, la fonction ISNULL remplace les valeurs NULL par une valeur spécifiée, tandis que la fonction ISNULL de l'évaluateur d'expression retourne une valeur booléenne basée sur le test de la valeur NULL d'une expression.
Dans Transact-SQL, la fonction ROUND comprend une option qui permet de tronquer l'ensemble de résultats, fonctionnalité que n'offre pas la fonction ROUND de l'évaluateur d'expression.
Pour plus d'informations, consultez Fonctions (SSIS).