Это очень странная вещь, я не знаю почему. Я создал отображение, которое преобразует данные с помощью выражения и загружает данные в цель (файл) на основе поиска по той же цели.
Source table
#CompanyName
Acne Lmtd
Acne Ltd
N/A
None
Abc Ltd
Abc Ltd
X
Отображение
Source
->Exp(trim..)
->Lookup(source.company_name
= tgt.company_name)
ReturnPort is CompId
-> filter(ISNULL(CompId))
-> Target
Compid (via sequence
gen)
CompName
ВышеЛогика сопоставления вставляет повторяющиеся названия компаний, также как и в источнике 2. Записи Abc Ltd тоже самое повторяются и в target. Я не знаю почему. Я попытался отладить, а условие оценивается как истинное в фильтре, что companyid равен нулю, даже если запись уже вставлена в цель.
Кроме того, я подумал, что это может быть случай кеша поиска, я включил динамическийкак хорошо, но результат тот же. Он должен был работать как SQL-запрос
select company_id
From lkptarget where
company_name
In (select company_name
from
Source)
Следовательно, для Abc Ltd условие фильтра должно было бы привести к ложному
Isnull(company_id) false
Но это становится правдой. Как получить уникальные записи с помощью поиска и без использования отдельных?
Примечание: используемый поиск уже является динамическим поиском