2016-01-29 3 views
0

Привет ребята Мой код выглядитОбработка нулевых значений в Informatica плоских файлах

iif(not isnull(ltrim(rtrim(a))) or not is_spaces(ltrim(rtrim(a))) or ltrim(rtrim(a))!='' or length(ltrim(rtrim(a)))!=0 or ltrim(rtrim(a))!=null or ltrim(rtrim(a))!='NULL'and not isnull(ltrim(rtrim(b))) or not is_spaces(ltrim(rtrim(b))) or ltrim(rtrim(b))!='' or length(ltrim(rtrim(b)))!=0 or ltrim(rtrim(b))!=null or ltrim(rtrim(b))!='NULL',null,ltrim(rtrim(a))). 

Если одновременно и Ь not null то я должен сделать, как null еще передать значение а, как это. Но моя логика не работает нормально, и я проверил журналы сеанса, предоставив подробные данные для преобразования выражения, но мое значение b, которое составляет [NULL], входит в журналы сеансов, считается not null. Можете ли вы, пожалуйста, помогите мне, ребята, дать точные утверждения, чтобы правильно определить нулевые значения. Я пробовал с is_spaces, пустым strings.length!=0 вариантов. Но все же нулевые значения считаются фактическими значениями, которые являются неправильными.

+0

Это файл с фиксированной шириной? – Ruchi

ответ

1

Я думаю, вам нужно сгруппировать условия для a и b, как показано ниже

IIF 
(
    (
     NOT ISNULL(LTRIM(RTRIM(a))) 
    OR NOT IS_SPACES(LTRIM(RTRIM(a))) 
    OR LTRIM(RTRIM(a)) != '' 
    OR LENGTH(LTRIM(RTRIM(a))) != 0 
    OR LTRIM(RTRIM(a)) != NULL 
    OR LTRIM(RTRIM(a)) != 'NULL' 
    ) 
    AND 
    (
     NOT ISNULL(LTRIM(RTRIM(b))) 
    OR NOT IS_SPACES(LTRIM(RTRIM(b))) 
    OR LTRIM(RTRIM(b)) != '' 
    OR LENGTH(LTRIM(RTRIM(b))) != 0 
    OR LTRIM(RTRIM(b)) != null 
    OR LTRIM(RTRIM(b)) != 'NULL' 
    ) 
    ,NULL 
    ,LTRIM(RTRIM(a)) 
) 

Надеется, что это помогает.

ПРИМЕЧАНИЕ: Я не оптимизировал ваши проверки для проверки null условий.

+0

Рад, что это сработало! Не могли бы вы отметить это как ответ, чтобы указать на то же самое? – vmachan

Смежные вопросы