31

我正在从 excel 中提取数据ssis。excel 列之一包含blank值。所以我需要blank用 null 替换 value 否则我的包会失败。有什么建议吗?

4

6 回答 6

57

在 DataFlow 中使用 DerivedColumn 组件。

替换您的列并在表达式中输入这行代码

ColumnName == "" ? NULL(DT_WSTR,50) : ColumnName

如果列为空,它将确保返回 null

于 2012-10-24T16:37:27.863 回答
23

您可能还需要检查在源连接和目标连接上保留 Null 值的选项(如果可用)

于 2012-10-31T11:23:09.303 回答
11

您是否尝试过类似的东西(假设数据类型是字符串/varchar):

LEN(TRIM([ColumnName]))==0 ? NULL(DT_WSTR, 10) : [ColumnName] 
于 2012-10-24T16:34:57.340 回答
2

修复上述问题:::::

源和目标必须使用允许空值选项进行检查,它将起作用。

于 2015-03-27T10:55:06.720 回答
1

我有一个类似的实例,我想将日期列中的字符串替换为 NULL,我使用了以下代码:

LEN(你的数据) < 2 ? NULL(DT_WSTR,50) : your_data

在这种情况下,字符串的长度仅为 1。然后我使用数据转换转换将其转换为 dt_dbtimestamp 类型。

希望有帮助!

于 2013-08-07T20:04:10.113 回答
0

您应该使用派生列组件和条件表达式。由于这是一个条件语句,数据类型需要相同才能创建布尔结果。

尝试使用这个:

ColumnName == (DT_DATE)"" ? NULL(DT_DATE) : ColumnName
于 2017-12-19T03:17:17.310 回答