В этом случае просто вызываем Оператор, смотрим на вкладку Description для шага обновления переменной, копируем оттуда SQL скрипт и пытаемся его выполнить в клиентском приложении СУБД.
Допустим, что скрипт написан правильно, ошибки в операторе SELECT для переменной нет, просто этих данных нет в таблице, из которой мы пытаемся получить значение и занести его в переменную для дальнейшего использования.
И вот, когда в процессе разработки, таких ситуаций становится все больше, у разработчика может возникнуть желание, временно конечно, установить для переменной значение по-умолчанию:
или модифицировать SELECT для обновления переменной так, чтобы он возвращал значение, даже если его нет в таблице источнике:
select coalesce(max(param_value, -1)
from t_params
where param_name = 'Param Name Invalid'
На мой взгляд, так делать нельзя. Ведь отсутствие значения для переменной, а, следовательно, и падение сценария загрузки данных в некую таблицу, может явиться сигналом того, что процесс загрузки пошел не совсем так, как ожидалось. Например, при переносе сценариев в промышленную среду загрузки ХД, скрипты добавления параметров не были выполнены, или были выполнены не до конца. Лучше, в таком случае, чтобы сценарий завершился с ошибкой, чем если в целевую таблицу запишутся не те данные из переменной, которая получила значение по-умолчанию.
Еще о переменных ODI.
Комментариев нет:
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.