【问题标题】:Derived column error when using datetime fields使用日期时间字段时的派生列错误
【发布时间】:2018-03-13 14:45:46
【问题描述】:

我正在尝试做这样的事情。

[Part Time Zone] == "CST" ? DATEADD("hh",1,(DT_DBTIME)[Part Start Date]) : 
([Part Time Zone] == "MST" ? 
DATEADD("hh",2,(DT_DBTIME)[Part Start Date]) : DATEADD("hh",3,(DT_DBTIME)
[Part Time Zone]))

其中[Part Time Zone] 是字符串字段。

得到以下错误

[派生列 [2]] 错误:SSIS 错误代码 DTS_E_INDUCEDTRANSFORMFAILUREONERROR。
“派生列”失败,因为发生错误代码 0xC0049063,并且“派生列.输入 [派生列输入].列 [零件开始日期]”上的错误行处置指定错误失败。指定组件的指定对象发生错误。在此之前可能会发布错误消息,其中包含有关失败的更多信息。

[SSIS.Pipeline] 错误:SSIS 错误代码 DTS_E_PROCESSINPUTFAILED。组件“派生列”上的ProcessInput方法(二) 处理输入“派生列输入”(3) 时失败,错误代码为 0xC0209029。已识别的组件从 ProcessInput 方法返回错误。 该错误是特定于组件的,但该错误是致命的,将导致数据流任务停止运行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。

【问题讨论】:

    标签: ssis


    【解决方案1】:

    这可能是您投射到DT_DBTIME 的数据有问题。您能否在此之前放置一个派生列转换 (DCT),其中字段 [Part Time Zone] 被强制转换为时间(例如,您可以将其命名为 [Part Time Zone as Time]),然后在此派生列转换中使用该新列。

    这样,您可以配置第一个 DCT 以将行重定向到错误输出。将 Recordset 目标附加到该位置,然后打开数据查看器以查看出现此错误的数据。

    【讨论】:

      猜你喜欢
      • 2022-12-12
      • 2016-09-30
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多