【问题标题】:SSIS Derived Column ExpressionSSIS 派生列表达式
【发布时间】:2015-07-16 23:24:42
【问题描述】:

下面是 SSIS 中时间戳的派生表达式

(DT_DBTIME)(SUBSTRING([Column 11],1,2) + ":" + SUBSTRING([Column 11],3,2) + ":" + SUBSTRING([Column 11],5,2)) 

但它不采用空值,所以我尝试了这个

ISNULL ( [Column 11] ) ? "000000" : (DT_DBTIME)(SUBSTRING([Column 11],1,2) + ":" + SUBSTRING([Column 11],3,2) + ":" + SUBSTRING([Column 11],5,2)) 

但它仍然无法正常工作。

有人可以帮忙吗?

【问题讨论】:

  • 您能否提供更多详细信息,“它不接受空值” 和 “仍然无法工作” 是什么意思?一个错误或一个错误的结果,如果你把你的问题说清楚,你会增加得到答案的机会
  • 试试这个解决方法:support.microsoft.com/en-us/kb/918038
  • 当我尝试使用此 (DT_DBTIME)(SUBSTRING([Column 11],1,2) + ":" + SUBSTRING([Column 11],3,2) + ":" + SUBSTRING([Column 11],5,2)) 它工作正常。但是,当列中包含空值时,表达式将失败。所以为了克服这个空值,我使用了这个表达式 ISNULL ([Column 11]) ? "000000" : (DT_DBTIME)(SUBSTRING([Column 11],1,2) + ":" + SUBSTRING([Column 11],3,2) + ":" + SUBSTRING([Column 11],5,2 ))。但是当我尝试这个时它会抛出错误。
  • 加载表时出错 [派生列 [876]]:计算表达式“ISNULL([列 11])?”000000“:(DT_DBTIME)(SUBSTRING([列 11],1,2 ) + ":" + SUBSTRING([Column 11],3,2) + ":" + SUBSTRING([Column 11],5,2)) " 失败,错误代码为 0xC00470A0。表达式可能有错误,例如除以零,在解析时无法检测到,或者可能存在内存不足错误。

标签: sql ssis


【解决方案1】:

您在问题中发布的错误有点误导。

SSDT产生的实际错误是:

数据类型“DT_WSTR”和“DT_DBTIME”不兼容 条件运算符。操作数类型不能隐式转换为 条件操作的兼容类型。要执行此操作 操作,一个或两个操作数需要使用强制强制强制强制强制强制强制强制强制强制强制强制强制强制强制强制强制强制强制强制强制强制强制强制强制强制强制强制强制强制强制强制强制强制 运算符。

当然还有你最后发布的那个:

数据流任务 [派生列 [18]] 出错:计算 表达式 "(ISNULL([Column 0]) ? "000000" : (DT_DBTIME) (SUBSTRING([Column 0],1,2) + ":" + SUBSTRING([Column 0],3,2) + ":" + SUBSTRING([Column 0],5,2)))”失败,错误代码为 0xC00470A0。 表达式可能有错误,例如除以零,不能 在解析时检测到,或者可能存在内存不足错误。

在您的情况下,这仅意味着您不能将 (DT_DBTIME) 定义为条件操作的一部分,

其他部分

: (DT_DBTIME)(SUBSTRING([Column 11],1,2) + ":" + SUBSTRING([Column 11],3,2) + ":" + SUBSTRING([第 11 列],5,2))

将另一部分保留为“DT_WSTR”

IF部分

ISNULL([第 11 列])? "000000"

所以正确的转换规则应该是:

(DT_DBTIME)(IS([Column 11]) ? "000000" : (SUBSTRING([Column 11],1,2) + ":" + SUBSTRING([第 11 列],3,2) + ":" + SUBSTRING([第 11 列],5,2)))

【讨论】:

    猜你喜欢
    • 2014-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多