2010-03-01 5 views
0

Dans un flux de données, j'ai une tâche de colonne dérivée. Dans l'expression pour l'une des colonnes, j'ai l'expression suivante:Expressions SSIS - Problème d'évaluation de l'expression

[siteid] == "100" ? "1101" : [siteid] == "110" ? "1001" : [siteid] == "120" ? "2101" : [siteid] == "140" ? "1102" : [siteid] == "210" ? "2001" : [siteid] == "310" ? "3001" : [siteid] 

Cela fonctionne très bien. Cependant, j'ai l'intention de réutiliser ceci dans au moins une douzaine d'autres endroits ainsi je veux stocker ceci à une variable et employer la variable dans la colonne dérivée au lieu de l'expression codée en dur. Lorsque j'essaie de créer une variable, en utilisant l'expression ci-dessus, j'obtiens une erreur de syntaxe indiquant que 'siteid' n'est pas défini. Je suppose que cela a du sens parce que ce n'est pas le cas. Mais comment puis-je obtenir cette expression pour travailler en utilisant une variable? Il semble que j'ai besoin d'une manière de dire que 'siteid' sera la colonne contenant les données auxquelles je veux appliquer l'expression.

Répondre

1

Vous ne pouvez pas utiliser les noms de colonne dans les expressions de variable. Je crains qu'il n'y ait aucun moyen de "cloner" facilement cette logique dans SSIS.

Je suggérerais, cependant, que vous n'essayez pas de cloner une logique codée en dur comme ceci. Construire une table de référence et utiliser un composant de recherche pour récupérer la valeur. De cette façon, si votre déclaration de «cas» change, il vous suffit de faire une modification - vous n'avez pas besoin de traquer partout où cette logique est utilisée. Et la configuration de la recherche est assez facile à faire glisser.

Questions connexes