我在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正确。但是当它实际运行时,无论是在调试器还是在生产中,它仍然评估为零。有人知道为什么吗?
答案 0 :(得分:0)
这个表达对我来说很好看。您应该检查使用它的字段的定义。它被声明为integer
(或其他一些数字数据类型)或者它已分配默认值。