Подход о том, как удалять записи из целевой таблицы ODI на условной основе (где условие). ODI12c - PullRequest
0 голосов
/ 07 января 2020

У меня есть сценарий в ODI 12 c, где мне нужно удалить записи из целевой таблицы в условии where.

SQL Интерпретация ODI Logi c:

удалить из целевой таблицы, где intergation_table.column <> target_table.column.

можно ли это сделать в ODI 12 c, если да, пожалуйста, помогите мне с решением.

1 Ответ

1 голос
/ 13 января 2020

Ответ на этот вопрос упомянут ниже, ODI не обеспечивает условное удаление данных на основе выбора источника, поэтому мы можем изменить шаг КМ для достижения этого, пометить столбец с помощью пользовательского флага и использовать его в КМ, столбец имя в I $ будет таким же, как цель, поэтому мы можем использовать тот же код <% = odiRef.getTargetColList ("", "T. [COL_NAME]", ",", "\ n", "UD1")%> в таблицы target и I $:

DELETE FROM <% = odiRef.getTable ("L", "TARG_NAME", "A")%> T WHERE <% = odiRef.getTargetColList ("", "T . [COL_NAME] ",", "," \ n "," UD1 ")%> IN (SELECT <% = odiRef.getTargetColList (" "," [COL_NAME] ",", "," \ n "," UD1 ")%>
FROM <% = odiRef.getTable (" L "," INT_NAME "," A ")%>)

...