J'ai un package SSIS avec un flux de données qui prend une source de données ADO.NET (juste une petite table), exécute une requête select * et affiche les résultats de la requête dans un fichier plat (j'ai également essayé de tirer le table entière et n'utilisant pas une sélection SQL). Le problème est que la source de données tire une colonne qui est un type de données Money, et si la valeur n'est pas zéro, elle vient juste dans le fichier plat du texte (comme '123.45'), mais quand la valeur est nulle , il apparaît dans le fichier plat de destination comme '.00'. Je dois savoir comment remettre le zéro initial dans le fichier plat.Comment obtenir le flux de données SSIS pour mettre '0.00' dans un fichier plat?
J'ai essayé différents types de données pour la sortie (dans le Gestionnaire de connexion de fichier plat), y compris la devise et la chaîne, mais cela semble n'avoir aucun effet.
J'ai essayé une déclaration de cas dans ma sélection, comme ceci:
CASE WHEN columnValue = 0 THEN
'0.00'
ELSE
columnValue
END
(résultats encore » .00')
J'ai essayé des variations sur ce comme ceci:
CASE WHEN columnValue = 0 THEN
convert(decimal(12,2), '0.00')
ELSE
convert(decimal(12,2), columnValue)
END
(résultats Toujours dans » .00')
et:
CASE WHEN columnValue = 0 THEN
convert(money, '0.00')
ELSE
convert(money, columnValue)
END
(résultats dans » 0,0000000000000000000 ')
Cette petite question idiote est Killin' moi. Quelqu'un peut-il me dire comment obtenir une valeur de base de données de type de données zéro Money dans un fichier plat comme «0.00»?
J'aimerais connaître la cause de ce problème - je ne suis pas vraiment à l'aise avec le piratage de la colonne dérivée. – PeterX