SSIS 派生列 - 类型转换问题

SSIS Derived column - Type casting issue

我是 SSIS 的新手,我有现有的 SQL table 并且我想将数据加载到 decimal(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 接受所有这些,但在 运行 为派生列

打包时出错

[Derived Column [2]] Error: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR. The "Derived Column" failed because error code 0xC0049063 occurred, and the error row disposition on "Derived Column.Outputs[Derived Column Output].Columns[estimated-order-handling-fee-per-order-derived]" specifies failure on error. An error occurred on the specified object of the specified component. There may be error messages posted before this with more information about the failure.

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

谢谢。

我认为错误可能是由空值或空值引起的。另外,尝试使用 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]