【问题标题】:DT_Decimal Data Type Cutting off DecimalDT_Decimal 数据类型 截断十进制
【发布时间】:2014-07-01 20:11:49
【问题描述】:

我有一个平面文件源,它为 Note Amount 列获取十进制值。源系统指定这是一个DECIMAL(12,2) 文件。我将 SSIS 中的列设置为 DT_Decimal

特定平面文件的其中一个金额的值为 122735.13。但是,如果我在源之后的流上放置一个数据查看器,它似乎会减少小数点。

知道为什么会这样吗?作为参考,我将访问 Decimal(12,2) SQL Server 2012 数据库。

【问题讨论】:

    标签: sql-server ssis sql-server-2012


    【解决方案1】:

    有人指出我需要添加缺少的比例。

    或者更好的做法是 this suggests 并切换到我可以设置精度和比例的数字。

    【讨论】:

    • 了解导入导出向导中的哪种数据类型与 SQL Server 中的哪种数据类型匹配也可能很有用:link
    • 本质上,根据 Sevenkul 的映射链接,SSIS 中的 DT_DECIMAL 不等同于 SQL Server 中的 DECIMAL(x,y) 数据类型,应该使用 DT_NUMERIC 代替 SQL 中的十进制和数字数据类型服务器。
    • 这让我头疼了一个小时 - 非常感谢!
    【解决方案2】:

    我最终将其读取为文本,并在导入前后将表格字段更改为十进制。没有其他办法让我在 SSIS 2013 中保持小数点。

    【讨论】:

    • 如果你有一个大表,需要很多时间,SQL Server会报错。
    猜你喜欢
    • 1970-01-01
    • 2015-05-04
    • 1970-01-01
    • 2016-04-22
    • 1970-01-01
    • 2014-03-25
    • 2011-06-24
    • 2021-10-12
    • 2011-02-12
    相关资源
    最近更新 更多