【问题标题】:SSIS Data conversion transformationSSIS 数据转换转换
【发布时间】:2019-02-16 17:35:57
【问题描述】:

在 SSIS 中,我读取了一个列格式的 csv 文件 - 例如 1.252.50。 在数据转换任务中,我转换为十进制 dt_decimal scala 2。 在数据表中,该列的格式为小数(18,2)。

数据将使用125.0025.00 存储,而不是1.252.50

我需要调整什么?

【问题讨论】:

    标签: sql-server ssis decimal etl data-conversion


    【解决方案1】:

    可能的问题原因

    (1) 数据类型不匹配

    我认为类似的问题是由源和目标之间的数据类型不匹配引起的,或者是数据转换输出和目标之间的不匹配。

    (2) 数字分隔符

    另一个原因可能是数字值包含逗号, 格式,例如千位逗号1,000,000 和小数分隔符.,例如1.02


    可能的解决方案

    (1) 在源中指定数据类型

    为了防止这个问题是由数据转换引起的,并且如果您的源数据格式正确。那么就不需要数据转换了。在Flat File Connection Manager 编辑器中。转到高级选项卡,选择包含小数的列并更改其数据类型(尝试DT_NUMERICDT_DECIMAL)以及精度和比例属性。

    如果问题仍然存在,请确保输入和输出具有相同的元数据(精度和比例)。

    (2) 派生列

    或者您应该使用具有类似表达式的派生列转换:

    (DT_NUMERIC,18,2)[COLUMN] 
    

    (3) 使用派生列替换分隔符

    您可以使用派生列替换分隔符

    (DT_NUMERIC,18,2)REPLACE([COLUMN], ",", ".") 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-21
      相关资源
      最近更新 更多