Exemplo de loop: conversão de uma única linha em várias linhas (DataStage®)

É possível usar o estágio Transformer para converter uma única linha para dados com colunas de repetição em várias linhas de saída.

Dados de entrada com várias colunas de repetição

Quando os dados de entrada contêm linhas com várias colunas contendo dados de repetição, é possível usar o estágio Transformer para produzir várias linhas de saída: uma para cada uma das colunas de repetição.

Por exemplo, se a linha de entrada continha os dados a seguir.
Col1 Col2 Name1 Name2 Name3
abc def Jim Bob Tom
É possível usar o estágio Transformer para comprimir os dados de entrada e criar várias linhas de saída para cada linha de entrada. Os dados agora abrangem as colunas a seguir.
Col1 Col2 Nome
abc def Jim
abc def Bob
abc def Tom
Para implementar esse cenário no estágio Transformer, faça as configurações a seguir:
Condição de loop
Insira a expressão a seguir como a condição de loop:
@ITERATION <= 3
Como cada linha de entrada tem três colunas contendo nomes, é necessário processar cada linha de entrada três vezes e criar três linhas de saída separadas.
Variável de loop
Defina uma variável de loop para fornecer o valor para a nova coluna Nome em suas linhas de saída. O valor de LoopVar1 é configurado pela expressão a seguir:
IF (@ITERATION = 1) THEN inlink.Name1
ELSE IF (@ITERATION = 2) THEN inlink.Name2
ELSE inlink.Name3
Metadados e derivações do link de saída
Defina as colunas do link de saída e suas derivações:
  • Col1 - inlink.col1
  • Col2 - inlink.col2
  • Name - LoopVar1