Стратегия обновления Informatica Запрос логики псевдокода

Приведена логика псевдокода для конкретного запроса преобразования стратегии обновления. Мне нужно написать это в SQL-запросе стратегии обновления информатики. Я использую несвязанное преобразование поиска. Поскольку я очень новичок в этом, я не могу сделать запрос для этой логики.

If(record does not exists in target table)
If(dbcal is not set)
Insert 
Else
Reject
Else if(record  exists in target table)
If(dbcal is not set)
Update
Else
Delete

Моя логика похожа на iif((isnull(recordname),iif(isnull(dbcal),dd_insert)), dd_update, dd_delete)

Пожалуйста, предложите правильный запрос. ТИА


person TrueDroider    schedule 16.03.2017    source источник
comment
Другая часть if не имеет для меня смысла. Как бы вы обновили или удалили, если запись не существует в целевой таблице?   -  person Samik    schedule 16.03.2017
comment
С точки зрения обслуживания объединение всего в одну стратегию обновления означает, что вы не будете знать, сколько транзакций было обновлено, вставлено или удалено при проверке журналов сеансов. Лучше использовать маршрутизатор с 3 отдельными группами для обновления, удаления и вставки с логикой для разделения групп в маршрутизаторе... это мои 2 цента.   -  person Daniel Machet    schedule 16.03.2017
comment
Логика обновлена ​​@Samik   -  person TrueDroider    schedule 16.03.2017
comment
Это один из моих вопросов о задании, в котором я только что наткнулся на стратегию поиска и обновления. @Даниэль Маше   -  person TrueDroider    schedule 16.03.2017


Ответы (2)


Ну что ж, как бы я ни любил домашнюю работу... удачи ????

person Daniel Machet    schedule 17.03.2017

Основываясь на вашем псевдокоде, это должно быть примерно так, как показано ниже.

iif(isnull(recordname),
  iif(isnull(dbcal),
    dd_insert,
    dd_reject), 
  iif(isnull(dbcal),
    dd_update, 
    dd_delete)
)
person Samik    schedule 17.03.2017