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