#informatica #informatica-powercenter
#informatica #informatica-powercenter
Вопрос:
у меня есть senerio, где мне нужно получить данные за предыдущий месяц. итак, я создал два потока в потоке сопоставления, 1 получит даты первого и последнего месяцев, и я использую проверяемые параметры и вызываю их в сопоставлении 2 в исходном sql, но по какой-то причине sql не принимает исходные значения, даже после того, как в нем есть значения.
SETVARIABLE($$END_DATE,set_$$END_DATE_v) ----------------------
это условие, которое я использую для получения $$END_DATE (которое задается в параметрах), поэтому я получаю конечную дату как 20160930,
а в исходном sql я сказал:
PAL.EXCLS_PAID_DATE BETWEEN TO_DATE($$START_DATE,'YYYYMMDD') AND TO_DATE($$END_DATE,'YYYYMMDD')
,
но его повторная
PAL.EXCLS_PAID_DATE BETWEEN TO_DATE(,'YYYYMMDD') AND TO_DATE(,'YYYYMMDD')
и выдающая ошибка как отсутствующее выражение
Комментарии:
1. Используете ли вы $$START_DATE и $$END_DATE в исходном sql?
2. Да, упомянутая выше логика используется в исходном sql
3. Это утилита informatica, если вы используете ее в исходном запросе, она не будет работать. Вам просто нужны имена столбцов в исходном запросе. Используйте логику $$START_DATE и $$END_DATE в портах при преобразовании выражения
Ответ №1:
- SETVARIABLE работает. Но по-другому.
- Вы можете попытаться установить значения $$ START_DATE и $$ END_DATE на уровне рабочего процесса, а затем использовать их в квалификаторе источника
- Или сделайте то же самое в инструкции SQL, используемой для получения данных.