DT_Decimal数据类型截断小数位问题

25
我有一个平面文件源,它抓取 Note Amount 列的十进制值。源系统指定这是一个 DECIMAL(12,2) 文件。我已经在 SSIS 中将该列设置为 DT_Decimal。
特定的平面文件有一个金额值为 122735.13。然而,如果我在源之后的流上放置数据查看器,似乎会截断小数部分。
这是为什么?任何想法?供参考,我要去一个 Decimal(12,2) 的 SQL Server 2012 数据库。
2个回答

31

有人指出我需要添加缺失的标度。

十进制

或者更好的方法是按照此建议切换到numeric,从而可以设置精度和标度。

数值型


1
了解在“导入/导出向导”中哪种数据类型与SQL Server中的哪种数据类型相匹配可能也很有用:链接 - sevenkul
2
实质上,根据sevenkul的映射链接,在SSIS中,DT_DECIMAL数据类型并不等同于SQL Server中的DECIMAL(x,y)数据类型,因此应该使用DT_NUMERIC来代替SQL Server中的十进制和数值数据类型。 - Leonard
这让我头疼了一个小时 - 非常感谢你! - Daniel Hanczyc

-1

最終我是以文本形式讀取並在導入前後將表字段更改為十進制,沒有其他方法能讓我在 SSIS 2013 中保留小數點。


如果您有一个大表,它需要很长时间,而且SQL Server会出现错误。 - sevenkul

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接