如何在ssis中将空白转换为null

时间:2012-10-24 16:12:40

标签: sql-server error-handling ssis

我正在ssis中从excel中提取数据。其中一个excel列包含blank个值。所以我需要用{替换blank值,否则我的包将失败。 任何建议?

6 个答案:

答案 0 :(得分:40)

在DataFlow中使用DerivedColumn组件。

替换你的列并在表达式中放置这行代码

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

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

答案 1 :(得分:19)

您可能还想检查源和目标连接上的保持空值的选项(如果可用)

答案 2 :(得分:9)

您是否尝试过(假设数据类型为string / varchar):

LEN(TRIM([ColumnName]))==0 ? NULL(DT_WSTR, 10) : [ColumnName] 

答案 3 :(得分:2)

修复上述问题:::::

必须使用选项allow null values检查源和目标,它将起作用。

答案 4 :(得分:1)

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

LEN(your_data)< 2? NULL(DT_WSTR,50):your_data

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

希望有所帮助!

答案 5 :(得分:0)

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

尝试使用:

ColumnName == (DT_DATE)"" ? NULL(DT_DATE) : ColumnName