SSIS comment convertir une chaîne de caractères (DT_STR) à argent (DT_CY) lorsque la source dispose de plus de 2 décimales

J'ai une source de fichier plat avec des valeurs telles que 24.209991, mais ils ont besoin de la charge pour SQL Server en tant que type de l'argent. Dans le DTS (dont je suis la conversion à partir d'), que la valeur vient à travers comme 24.21. Comment puis-je convertir ce champ dans SSIS?

Maintenant, je suis simplement en changeant le type de DT_STR à DT_CY, et il donne un terme d'erreur de Données conversion a échoué. La conversion des données de la colonne "Col003" renvoyé la valeur d'état 2 et le statut du texte "La valeur n'a pas pu être converti en raison d'un risque de perte de données.".'

Dois-je utiliser une Conversion de Données de la tâche? Et puis quoi?

J'ai aussi essayé la définition de la source de sortie de la colonne à DT_NUMERIC, et ensuite de les convertir à DT_CY, avec le même résultat.

J'ai aussi essayé d'utiliser des Colonnes Dérivées, coulée dans le DT_STR champ Col003 à (DT_NUMERIC,10,2)Col003 puis de casting que de (DT_CY)Col003_Numeric. Où il y a une erreur de casting.

  • Êtes-vous à l'aide d'un ADO.NET destination? J'ai juste essayé avec une destination OLE DB et pas eu de problèmes.
  • Source de Fichier plat, destination OLE DB. Pas de problèmes, hein? Ce que je fais mal?!