none
Metadata Lenght/Database RRS feed

  • Pergunta

  •  

    Fala pessoal,

     

    gostaria de tirar uma dúvida... quando estou exportando um dado atraves de um Ole DB Source para um Ole DB Destination, fica este Warning

     

    Warning 1 Validation warning. STG to ODS: OLE DB Destination [5090]: Truncation may occur due to inserting data from data flow column "BK_XXX" with a length of 71 to database column "BK_XXX" with a length of 61. Package_ODS.dtsx 0 0 

     

    em meu banco o Valor é 61, mas o Lenght do Metadata na hora da Exportação fica com Lenght 71, e acaba ficando com um Warning!

     

    Pergunta: porque ocorre isto? se meu campo é 61 na tabela, e meus valores sao até menores que 61, porque fica este warning de 71?

     

    e como faria para mudar isto? tem como editar este lenght ali no dataflow?

     

    unico modo que eu consegui para tirar o warning é colocando 71 em minha Base, mas não queria isto.

     

    existe algum outro modo? alguém ja viu isto?

     

    Vlw.

     

     

    quarta-feira, 16 de abril de 2008 19:23

Respostas

  • Quando você abre as propriedades dos outputs, realmente é só para consulta, você não deve alterar nada ali.

    O ValidateExternalMetadata é  uma propriedade do OLEDB Source, e força o componente a validar os metadados em tempo de execução; se encontrar alguma diferença, um erro será gerado. No seu caso, deve estar como False, justamente para quando você abrir o pacote, a alteração no tamanho do campo seja detectada.

    Porém, se tratando de bancos que não o SQL Server, eu não arrisco nada... No último caso, altere as propriedades do Output através da opção "Show Advanced Editor" do seu OLE DB Source

    quinta-feira, 24 de abril de 2008 21:02

Todas as Respostas

  • Sua coluna na origem tem comprimento 61?  Origem e destino são ambos SQL Server?

    Você pode utilizar o Data Conversion para alterar o comprimento do campo.

    quarta-feira, 16 de abril de 2008 20:39
  •  

    Sim Ambos,

     

    São 2 tabelas SQL,

     

    ambos campos estao com tamanho 61, mas quando estou ligando o Ole DB Source, para Ole DB Destination, ele fica com este Warning.

     

    tentie usar o Data Conversion e mesmo assim continua o Warning, não da erro nem nada, só não sei porque ele fica dando este Warning, se ambos camos da tabela são do mesmo tamanho, e da onde ele tira este outro tamanho.

     

     

    quarta-feira, 16 de abril de 2008 21:58
  •  

    álias errie, quando tento inserir desta forma ocorre erro de output sim.

     

    quarta-feira, 16 de abril de 2008 22:03
  • Que estranho isso hein... Vc pode postar aqui o script das duas tabelas?

    quinta-feira, 17 de abril de 2008 16:09
  • Então estranho mesmo,

     

    mas Obrigado ai pela força Half,

     

    Acho que consegui aqui, o que acontece é o seguinte, meu ETL já estava montado, ai eu entrei no Banco, e mudei os tamanhos dos campos, e somente abri os DataFlows, para atualizar no ETL, porém não sei porque ele guarda os tamanhos dos campos antigos, no OLE DB Source, então ele fica tentando Inserir um número tamanho diferente no Meu Detination que está agora com outro Valor.

     

    Eu apaguei os OLE DB Source, e Refiz e ficou OK, não sei porque ele grava uns lixos, acho que é isso. Pelo menos ficou Ok aki.

     

    vlw pela força ai.

     

     

    Abraços!!

     

    quinta-feira, 17 de abril de 2008 20:41
  • Pessoalmente, acho importante você tentar reproduzir o erro e entender realmente o que aconteceu, para não ficar na mão em situações mais complexas. O último ponto que me veio a mente é o ajuste das propriedades DelayValidation e ValidateExternalMetadata, no componente Data Flow e OLE DB Source. Você chegou a alterar alguma dessas propriedades? 

    sábado, 19 de abril de 2008 20:46
  • Olá Half,

     

    desculpe a demora pra responder, é que estava sem Net, só consegui acessar aqui no trabalho agora.

     

    Bom então, eu acho realmente que era o que eu citei, mas ve se estou errado, quando eu conecto um Ole DB Source, no meu OLe DB Destination,  aquela minha "Setinha Verde" (Output) , quando dou um Edit nela, Aparece os Medatas ( Valores e tamanhos dos campos que eu estou passando de uma tabela para Outra ), e a primeira vez que fiz aquilo o Valor do Campo era 12, ai quando mudei o Valor na Tabela para 10, o metadata Não Atualiza (Não sei como Atualizar), pensei que abrindo o OLE DB, ele faria isso , mas não fez, então eu apaguei o OLe DB , desfiz a Conexao, e Recriei, ai ele Recriou o Output como 10, e ai não deu mais o Warning.

     

    Sobre os campos da propriedade que você citou, não os conheço então nem cheguei a mecher, eu procurei aqui eles agora, só achei o :

    DelayValidation e ele esta setado como False, o outro não achei.

     

    Se você puder aproveitar e me dizer onde ele fica, e para que os 2 campos servem, já é uma Boa.

     

    Vlw ai preocupação!

     

    Abraços!

     

    terça-feira, 22 de abril de 2008 17:01
  • Quando você abre as propriedades dos outputs, realmente é só para consulta, você não deve alterar nada ali.

    O ValidateExternalMetadata é  uma propriedade do OLEDB Source, e força o componente a validar os metadados em tempo de execução; se encontrar alguma diferença, um erro será gerado. No seu caso, deve estar como False, justamente para quando você abrir o pacote, a alteração no tamanho do campo seja detectada.

    Porém, se tratando de bancos que não o SQL Server, eu não arrisco nada... No último caso, altere as propriedades do Output através da opção "Show Advanced Editor" do seu OLE DB Source

    quinta-feira, 24 de abril de 2008 21:02