【问题标题】:Replacing Null Values Using Derived Column in SSIS在 SSIS 中使用派生列替换空值
【发布时间】:2018-02-09 10:33:58
【问题描述】:

我有一个数据流任务,它从非 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 中看到我的新派生列,因此看不出为什么这不起作用。任何帮助都将受到欢迎。

【问题讨论】:

  • 使用内联 if 表达式是否有更好的运气? ISNULL(dateColumn) == True ? (DT_STR,10,1252) "1900-01-01" : dateColumn
  • 目标列的数据类型是什么?
  • @BHouse 他在他的问题中说:目标表列是 varchar 数据类型。

标签: sql-server-2012 ssis-2012


【解决方案1】:

如果您的来源不是 unicode,为什么要使用 DT_STR? varchar 已经是一种非 unicode 数据类型。你应该可以用

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

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

【讨论】:

    猜你喜欢
    • 2021-12-09
    • 1970-01-01
    • 1970-01-01
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多