【问题标题】:Date conditional update issue SSIS?日期条件更新问题 SSIS?
【发布时间】:2021-08-02 16:31:39
【问题描述】:

我在 SSIS 条件拆分中遇到问题。每当我运行包时,条件更新将永远更新。

在我的表中,我有一个 date_mod 列,如果人员更改数据,该列会更改。但是,如果它没有改变,我将它设为 null。所以问题来自将源表中的 null 与目标表中的 null 进行比较,或者有时两者都有 null ?

!ISNULL(id) && !ISNULL(sourceId) && (id == sourceId) && (date_mod != date_mod_dw)

你知道如何解决这个问题吗?

【问题讨论】:

  • 将 NULL 转换为固定日期,例如 2999-01-01。那么我建议你停止使用 SSIS 并开始使用 T-SQL

标签: ssis


【解决方案1】:

尝试使用 T-SQL 查询中的转储值更改 NULL date_mode 值

 SELECT col1, col2,.., ISNULL( date_mod ,'1999-12-31') AS date_mod  FROM yourTable

然后在您的条件拆分中保留以下内容:

!ISNULL(id) && !ISNULL(sourceId) && (id == sourceId) && (date_mod != date_mod_dw)

或者您可以使用派生列替换 date_mode 的 NULL 值以将条件应用于 date_mod

(ISNULL([date_mod]) ? (DT_DATE)"1999-12-31" : [date_mod]))

然后:

!ISNULL(id) && !ISNULL(sourceId) && (id == sourceId) && (date_mod != date_mod_dw) 

这是我的假设:

您需要在 SSIS 条件拆分中处理空值,因为如果条件中有空值,SSIS 会将整个条件视为 NULL。

因此,您的整个条件返回 NULL

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-10
    • 1970-01-01
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多