无法解析我的 SSIS 派生列表达式

Posted

技术标签:

【中文标题】无法解析我的 SSIS 派生列表达式【英文标题】:Cannot parse my SSIS derived column expression 【发布时间】:2015-06-05 10:11:24 【问题描述】:

您好,这是我第一次尝试编写复杂的派生列表达式。我不确定问题出在哪里,因为它是一个非常通用的错误消息,并没有多大帮助,

表达式为:

If( [conv_Status] ==10 && [conv_Agreed] == TRUE && [conv_Unagreed] == TRUE) ([conv_Status] == 15) ELSE ([conv_Status] == [conv_Status])

错误信息如下:

tblDetail [派生列 [143]] 出错:尝试解析表达式“If( [conv_Status] ==10 & [conv_Agreed] == TRUE & [conv_Unagreed] == TRUE) ([conv_Status] == 15 ) ELSE([conv_Status] == [conv_Status])" 失败。表达式可能包含无效标记、不完整标记或无效元素。它可能格式不正确,或者可能缺少括号等必需元素的一部分。

tblDetail [派生列 [143]] 出错:无法解析表达式“If( [conv_Status] ==10 & [conv_Agreed] == TRUE & [conv_Unagreed] == TRUE) ([conv_Status] == 15)否则([conv_Status] == [conv_Status])”。表达式无效,或存在内存不足错误。

tblDetail [派生列 [143]] 出错:表达式“If( [conv_Status] ==10 & [conv_Agreed] == TRUE & [conv_Unagreed] == TRUE) ([conv_Status] == 15) ELSE( “Derived Column.Inputs[Derived Column Input].Columns[conv_Status]”上的 [conv_Status] == [conv_Status])" 无效。

tblDetail [Derived Column [143]] 出错:无法在“Derived Column.Inputs[Derived Column Input].Columns[conv_Status]”上设置属性“Expression”。

谢谢

【问题讨论】:

这是 SSIS 还是 s-s-rS? 我正在与 SSIS 合作 【参考方案1】:

这就是答案:

conv_Status == 10 && conv_Agreed ==  FALSE  && conv_Unagreed ==  TRUE  ? 15 : conv_Status

【讨论】:

再解释一下:派生列表达式返回一个值——它没有设置任何值。 SSIS也不使用ifthen,它使用?:【参考方案2】:
... ([conv_Status] = 15) ELSE ([conv_Status] = [conv_Status])

我相信您希望在这些中分配“=”,而不是比较“==”。

【讨论】:

以上是关于无法解析我的 SSIS 派生列表达式的主要内容,如果未能解决你的问题,请参考以下文章

SSIS 表达式无法验证

为啥派生列组件的表达式不适用于 SSIS 中的空值?

如果条件不满足,派生列表达式SSIS如何忽略表达式?

SSIS派生列问题

使用 SSIS 派生列提取日期值

无法评估表达式。在 SSIS 中(IDTSVa​​riableDispenser100 变量,布尔 isSensitive)