Informatica decode返回不允许的值

时间:2013-09-25 20:24:40

标签: decode informatica informatica-powercenter case-statement

我在informatica中的表达式转换中有以下解码语句:

(DECODE
(TRUE
, OPERATION1='I' and NOT ISNULL(a_new),'YES'
, OPERATION1='D'and NOT ISNULL(a_old),'YES'
, OPERATION1='U'and ( (
     (a<>b) 
  or (ISNULL(a_new) and NOT ISNULL(a_old)) 
  or (NOT ISNULL(a_new) and ISNULL(a_old))
      ) 
),'YES','NO CHANGE')
)

其中a_new和a_old都是整数(当它们出现时)。

这是奇怪的部分:

此解码语句在运行时不断返回值0(零)。我不能为我的生活找出原因。当我在调试器中运行它并评估解码时(右键单击表达式,单击'evaluate expression',粘贴解码),它将评估为YES或NO CHANGE正确。但是当它实际运行时,无论是在调试器还是在生产中,它仍然评估为零。有人知道为什么吗?

1 个答案:

答案 0 :(得分:0)

这个表达对我来说很好看。您应该检查使用它的字段的定义。它被声明为integer(或其他一些数字数据类型)或者它已分配默认值。