Как решить приведенный ниже сценарий, используя цикл трансформатора или что-либо еще в datastage

Мои данные, как показано ниже, в одном столбце, поступающем из файла.
Source_data --- (это имя столбца)
ЗАКАЗЧИК 15
СЧЕТЧИК 8
СЧЕТЧИК 1
ЧТЕНИЕ 1
СЧЕТЧИК 56
Счетчик 14
Показания 5
Показания 6
Показания 7
КЛИЕНТ 38
СЧЕТЧИК 24
СЧЕТЧИК Счетчик 1
ПОКАЗАНИЯ 51
КЛИЕНТ 77
СЧЕТЧИК 38
ЧТЕНИЕ 9

Я хочу, чтобы выходные данные были такими, как показано ниже, в одном столбце.

КЛИЕНТ 15 СЧЕТЧИК 8 СЧЕТЧИК 1 ЧТЕНИЕ 1
КЛИЕНТ 15 СЧЕТЧИК 56 Счетчик 14 Считывание 5
КЛИЕНТ 15 СЧЕТЧИК 56 Счетчик 14 Считывание 6
КЛИЕНТ 15 СЧЕТЧИК 56 Счетчик 14 Считывание 7
КЛИЕНТ 38 СЧЕТЧИК 24 Счетчик 14 Чтение 51
CUSTOMER 77 METER 38 'дополнение 100 пробелов' Чтение 9

Я пытаюсь решить, читая документацию по циклу трансформатора, но не смог найти реального решения. что-нибудь помогает. Спасибо вам всем.


person Sean    schedule 29.12.2017    source источник


Ответы (1)


Да, это может быть решено в каскаде трансформатора. Конкатенация выполняется с помощью «:».

Поэтому используйте переменную этапа для объединения ввода, пока не появится новая строка «Счетчик» или «Клиент». Сохраните «Клиент» в переменной второго этапа на случай, если он не изменится.

Используйте условие, чтобы вывести только те строки, в которых существует «Чтение».

Сброс объединенной строки после обработки «Чтения».

Я предполагаю, что вам нужно заполнение отсутствующих полей в целом - вы можете выполнять эти проверки в отдельных переменных этапа. Вы должны сохранить предыдущий элемент, чтобы узнать, чего не хватает, и, возможно, даже больше, если могут отсутствовать два последовательных элемента.

person MichaelTiefenbacher    schedule 30.12.2017