none
COMO FAZER O MAPEAMENTO DINAMICAMENTE ????

    Question

  • Eu estou lendo uma tabela no SQL que contem uma coluna "TableName" com o ForEach Loop para varrer suas linhas e pegar o nome da tabela armazenando o mesmo numa variável;

     Deixo um valor de inicialização para a variável para que o integration me permita fazer o mapeamento no Data Flow (já tentei fazer sem a inicialização, com o Delay Validation mas deu o mesmo erro);

     No OLE DB Source eu coloco a variável que está armazenando o nome da tabela, e faço o mesmo com o OLE DB Destination;

    Quando eu rodo o pacote a primeira execução acontece sem problemas, mas quando ele troca de valor (tabela), da erro. O SSIS informa que não foi encontrado uma certa coluna, e essa coluna é da tabela anterior (da execução anterior).

    Enfim, a estrutura de cada tabela é diferente e quando troca o valor da variável (tabela), o SSIS não muda o mapeamento. Dai me pergunto, COMO FAZER O MAPEAMENTO DINAMICAMENTE ????

    Abraço.
    Wednesday, September 30, 2009 2:44 PM

All replies

  • ApredizBI,

    Recriar toda estrutura de mapeamento dinamicamente a cada execução no ForEach Loop?
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    Wednesday, September 30, 2009 5:21 PM
    Moderator
  • Sim, sim, sim ....
    Wednesday, September 30, 2009 5:58 PM
  • Amigo, eu até entendi o seu problema, mas me surgiu uma dúvida. Eu acho que o seu pacote deveria ter uma "inteligencia" a mais para fazer este mapeamento, já que os nomes das colunas, mesmo sendo iguais, e tendo mesma tipagem, não indicam ao pack que elas devem ser mapeadas.
    Estou pesquisando aqui e, se eu encontrar um jeito, que eu sei que tem, eu posto aqui.


    DotNet - Não existe nada igual.
    Friday, November 20, 2009 11:58 AM
  • Pois é cara, complicado não? Eu não consegui vazê-lo dinamicamente, então tive que fazer na raça mesmo!Mas aproveitando essa questão (que é interessante!) eu tentei usar o Script Component do Data Flow, mas não consegui usá-lo para realizar essa operação. Temho quase certeza que o segredo está nele para conseguir realizar isso ! Se vc conseguir algo posta ai blz...
    Wyllian de Lima - Se a resposta ajudou vote como útil !
    Monday, November 23, 2009 11:47 AM
  • ApredizBI,

    Mas o que você identifica no Script Component que poderia ser útil para este mapeamento dinâmico.
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    Monday, November 23, 2009 4:19 PM
    Moderator
  • Junior, Pelo que pesquisei o podemos substituir o OLE DB Source/Destination pelo Script Component, pois, o VB ou C# são mais flexiveis e poderia fazer esse processo de mapear dinamicamente.Tenho certeza que podemos usar esses componentes do SSIS para desenvolver esse tipo de operação. Tabela Origem 1 > (5 Colunas) Tabela Destino 1 Tabela Origem 2 > (mapeia automáticamente de 5 para 3 colunas )Tabela Destino 2 Tabela Origem 3 ... Valeu, té + !
    Wyllian de Lima - Se a resposta ajudou vote como útil !
    Monday, November 23, 2009 4:33 PM