【问题标题】:SSIS Derived column - Type casting issueSSIS 派生列 - 类型转换问题
【发布时间】:2020-11-24 05:16:06
【问题描述】:

我对 SSIS 很陌生,我有现有的 SQL 表,我想将数据加载到十进制 (10,2) 列中,但是作为源文件的 .csv 文件包含 -- 值,因此我正在尝试使用派生列和表达式将 -- 值替换为 0.00

我已将平面文件源输出 - 输出列更改为 Unicode string [DT_WSTR]

新派生列的表达式为:

[estimated-order-handling-fee-per-order] == "--" ? (DT_DECIMAL,2)"0.00" : (DT_DECIMAL,2)[estimated-order-handling-fee-per-order]

派生列输出 - 列输出设置为decimal [DT_DECIMAL]

SSIS 接受所有这些,但在为派生列运行包时出错,如下所示

[派生列 [2]] 错误:SSIS 错误代码 DTS_E_INDUCEDTRANSFORMFAILUREON错误。 “派生列”失败 因为发生了错误代码 0xC0049063,并且错误行处置 关于“派生列。输出[派生列 输出].Columns[估计的订单处理费每订单派生的]" 指定错误失败。指定对象发生错误 的指定组件。之前可能有错误信息发布 这包含有关失败的更多信息。

有人可以帮我完成这个转换吗?

谢谢。

【问题讨论】:

    标签: sql-server ssis etl derived-column


    【解决方案1】:

    我认为错误可能是由空值或空值引起的。另外,尝试使用DT_NUMERIC 数据类型而不是DT_DECIMAL,如下所示:

    REPLACE([estimated-order-handling-fee-per-order],"--","") == "" ? (DT_NUMERIC,10,2)"0.00" : (DT_NUMERIC,10,2)[estimated-order-handling-fee-per-order]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-24
      • 1970-01-01
      • 1970-01-01
      • 2022-10-14
      • 1970-01-01
      相关资源
      最近更新 更多