我正在从 excel 中提取数据ssis
。excel 列之一包含blank
值。所以我需要blank
用 null 替换 value 否则我的包会失败。有什么建议吗?
问问题
97204 次
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 回答