我在 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。但是当它在调试器和生产环境中实际运行时,它的计算结果仍然为零。有人知道为什么吗?