Почему поиск Informatica возвращает NULL, когда все условия выполняются? - PullRequest
0 голосов
/ 12 апреля 2019

Я использую подключенный поиск, чтобы получить значение при обнаружении условий совпадения.Однако поиск возвращает значение NULL, когда в базе данных присутствует значение, отличное от NULL.

Я проверил в Informatica Debugger и базе данных, что все условия совпадают и что соответствующее значение присутствует.

Вот снимки экрана: -

Отладчик: - (Я заметил маленький красный восклицательный знак на порте поиска, я не уверен, что это означает)

ЕдинствоТег - это значение поиска.Условие поиска, используемое в портах от 2 до 7

Informatica_Debugger

Informatica Журналы подробного режима: -

Verbose_Mode Logs

Данные таблицы поиска: - Lookup_Table

Результат при использовании объединения в SQL: - Соединение SQL Результат

Похоже, что мне нужно внести небольшое изменение, но я не могу понять, что это будет.

Ответы [ 3 ]

0 голосов
/ 06 июня 2019

Проблема была решена, и если это так, потому что одно из значений LKP было атрибутом CHAR в таблице LKP, а не VARCHAR.

Я получил ниже комментарий от участника сообщества, чтобы решить эту проблему.

» Разница тонкая, но средняя:

Значение CHAR всегда дополняется до определенной максимальной длины пробелами.

Теперь, когда вы запускаете SQL-запрос (как в вашем примере), интерпретатор SQL (в вашем случае) SQL Server автоматически «дополняет» значения, которые слишком коротки для правильной заданной длины, то есть SQL-запроса запуск вручную вернет то, что вы ищете.

Однако преобразование LKP запускает запрос SELECT, чтобы получить все записи поиска из базы данных. И в этом случае все атрибуты CHAR дополняются до определенной максимальной длины.

Если вы сейчас кормите, например, значение поиска «123» в преобразовании LKP, и в базовой таблице поиска для этого атрибута есть CHAR (5), тогда в кэше LKP будет строка «123» в своем индексном кэше. Но вы запрашиваете значение поиска «123». Очевидно, что «123» и «123» не совпадают, то есть вы не получите результатов. «

0 голосов
/ 07 июня 2019

2 способа решения этой проблемы:

  1. Либо обрежьте --ltrim (rtrim (value_here)) значения из вашего рабочего процесса и базы данных, чтобы они могли совпадать
  2. Вы должны заполнить пространство как значением сопоставления, так и значением поиска, чтобы оно могло совпадать.
0 голосов
/ 12 апреля 2019

Проверьте ваш запрос на переопределение поиска / тип данных порта onerosity в поиске.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...