1

我在 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(零)。我无法为我的生活找出原因。当我在调试器中运行它并评估解码时(右键单击表达式,单击“评估表达式”,将解码粘贴进去),它会正确评估为 YES 或 NO CHANGE。但是当它在调试器和生产环境中实际运行时,它的计算结果仍然为零。有人知道为什么吗?

4

1 回答 1

0

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

于 2013-09-26T06:49:21.793 回答