segunda-feira, 9 de julho de 2012

UNPIVOT - Integration Services

Aqui vai uma breve dica de como utilizar o objeto "UNPIVOT" no SSIS (integration services). Mas o principal objetivo deste post é mostrar a solução de um problema que aconteceu comigo, e que a mensagem de erro gerada pelo Visual Studio, não nos remete ao real problema.

Percebam que o pacote é muito simples e vou demonstrar a origem e resultado com imagens para ficar mais didático.



O objeto "ADO NET Source" do pacote, está usando a tabela acima como fonte de dados. Notem que a tabela está no modelo relacional.
Obs.: o UNPIVOT realiza a ação inversa do último post.



Pela relação das cores entre as imagens das duas planilhas, observem que após executar o pacote, as colunas "Indexa", "Juros" e "Calc" agora estão sendo apresentadas em linhas para cada "Customer ID".

Agora: vamos às configurações do pacote...

Insira um objeto ADO NET Source e configure-o alterando a instrução SQL Command ou optando pela seleção de uma tabela ou view.


Dica: prestem atenção no código SQL Command. Reparem que todas as colunas selecionadas estão sendo convertidas, pois, ao fazer o unpivot todos os dados que estão em diferentes colunas e possivelmente diferentes tipos de dados, ficarão na mesma coluna e, obviamente não podemos ter diferentes tipos de dados na mesma coluna.

Caso você não tenha feito a conversão dos dados e esses dados sejam de tipos diferentes, o Visual Studio exibirá a seguinte mensagem: "Incorrect UnPivot metadata. In an UnPivot transform, all input columns with a PivotKeyValue that is set, and are pointing to the same DestinationColumn, must have metadata that exactly matches the DestinationColumn."

Agora o próximo passo é configurar o objeto unpivot. Preferi ilustrar essas configurações, acho que ficará mais fáci de entenderem. Mas qualquer dúvida, podem entrar em contato.

Nenhum comentário:

Postar um comentário