을 반환 I 인포매티카의 표현식 변환에서 다음 디코딩 문이 : a_new 및 a_old 모두 정수가인포매티카의 디코딩이 허용되지 않는 값
(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')
)
(그들은 전혀 나타나지 경우).
이 디코드 문을 실행할 때, 항상 0 (영)의 값을 반환
여기에 이상한 부분입니다. 나는 왜 내 인생에 대해 생각할 수 없다. 디버거에서 이것을 실행하고 디코드를 평가할 때 (익스프레션을 마우스 오른쪽 단추로 클릭하고 '익스프레션 평가'를 클릭하여 디코드를 붙여 넣음), YES 또는 NO CHANGE로 올바르게 평가됩니다. 그러나 실제로 디버거와 프로덕션 모두에서 실행될 때는 여전히 0으로 평가됩니다. 왜 아무도 알지 못해?
+1 [내 좋아하는 DECODE (TRUE, ...) 트릭] 사용 (http://stackoverflow.com/a/9979906/95)! –