在SSIS中使用派生列替换空值

时间:2018-02-09 10:33:58

标签: sql-server-2012 ssis-2012

我有一个数据流任务,它将数据从非unicode平面文件中提取到SQL Server表目标。

我使用Derived Column任务将日期列中的NULL值替换为字符串" 1900-01-01"。目标表列是varchar数据类型。

我正在使用此SSIS表达式(DT_STR,10,1252)REPLACENULL(dateColumn,"1900-01-01")并且任务已成功执行但我仍然看到NULLs而不是" 1900-01-01"目的地的字符串。

这是为什么?我尝试更换列,添加了一个新列,但无论我做什么,我仍然看到NULLs而不是替换字符串。我可以在Advanced Editor中看到我的新派生列,因此可以看出没有理由说这不起作用。任何帮助都是最受欢迎的。

1 个答案:

答案 0 :(得分:0)

如果您的源是非unicode,为什么使用DT_STR? varchar已经是一个非unicode数据类型。你应该能够用

做到这一点

REPLACENULL(dateColumn,"1900-01-01")

另外,您是否进行了查找转换以更新列?您是否确保正在查找和更新正确的密钥?