Запускать задание в режиме данных, когда ввод пуст - PullRequest
0 голосов
/ 24 мая 2018

На работе мы используем Datastage 9.1 для создания некоторых отчетов, базовой структурой является JOB, который использует Oracle Connector для выбора нужных нам данных, а затем создает некоторые отчеты с использованием преобразователей.Дело в том, что при наличии 0 записей JOB просто пропускает все и переходит к созданию пустого выходного файла EVEN, если в преобразователе есть некоторые «жестко закодированные» данные, это означает, что в некоторых частях отчета есть статические данные, которые всегда будут там., некоторые строки и тому подобное.Есть ли способ заставить DS работать через всю JOB, даже если нет входных данных?Спасибо.

В качестве продолжения я подумал о создании выбора, который всегда будет возвращать хотя бы значение, что-то вроде «SELECT NAME, ADDRESS, '1' AS DATA FROM TABLE», так что это всегда будетесть некоторые данные для запуска.Проблема заключается в том, что это создаст поддельную запись, и отчет будет создан с «1 транзакцией», даже если она пустая, для меня это не годится.

1 Ответ

0 голосов
/ 24 мая 2018

Полный ответ затруднителен с предоставленной информацией, но прежде всего вы должны уточнить, что вы хотите увидеть, когда выбрано 0 записей и как должны выглядеть результаты SQL.

Одна идеяможет использоваться оператор объединения всех SQL с фиктивным SQL, который вы уже описали как второй SQL в UNION ALL.

Для извлечения только одной или другой, я предлагаю следующую структуру (или что-то подобное)

with temp as (
select 'original' as text, 1 as id
  from sysibm.sysdummy1
  where 1 = 1
 union all
select 'fallback' as text, 2 as id
  from sysibm.sysdummy1
)
select * from temp
where id = (select min(id) from temp) 

Первая часть UNION AL является оператором originina, а резервный оператор выбирается только/ возвращается, если первый ничего не возвращает.

Второе состояниеmnt должно содержать необходимые данные, если ничего не перенастроено из источника.Вы могли бы также использовать некоторую логику DataStage в дополнение к этому (всякий раз, когда ID = 2)

Надеюсь, это поможет

...