Вопрос

I'm new to Informatica and like to ask a question regarding infa ports. I found an example which show how to create an update flag in expression transform for updating data. The code in v_UPDATE_FLAG port looks like this:

IIF(NOT ISNULL(PREV_ITEM_KEY)
AND
(
DECODE(BONUS_FLAG,PREV_BONUS_FLAG,1,0) = 0 
OR
DECODE(DISCOUNT,PREV_DISCOUNT,1,0) = 0 
OR
DECODE(PRICE,PREV_PRICE,1,0) = 0 
),'TRUE','FALSE')

Can you explain what this does? What the DECODE does here??

DECODE(BONUS_FLAG,PREV_BONUS_FLAG,1,0) = 0 
Это было полезно?

Решение

DECODE syntax:

DECODE (
  value
, first_search  , first_result 
, second_search , second_result
, ...           , ...
                , default
)

The value parameter is compared with the search parameters and, when the first match is found, a respective result parameter is returned. If there is no match, the default parameter is returned.

DECODE(BONUS_FLAG,PREV_BONUS_FLAG,1,0) = 0 means that the BONUS_FLAG and PREV_BONUS_FLAG are not equal.

The entire expression flags a row for UPDATE when PREV_ITEM_KEY is not NULL and any of the attributes BONUS_FLAG, DISCOUNT or PRICE has changed (previous value versus current value).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top