locked
Erro ao exportar excel para sql server via wizard RRS feed

  • Pergunta

  • Bom dia,
    estou tentando importar um excel para um banco de dados sql server 2008. Só que ao executar o wizard ele retorna erro

    o que eu tenho esse campo acabamento sao informações relativamente pequenas, porem existe no meio tags html, não sei se influencia, como por exemplo:

    Edição de Luxo<br>Capa preta<br>Referências - letra grande

    já tentei colocar como varchar(max), text, nvarchar(max), porem continua dando erro:

    Error 0xc020901c: Data Flow Task 1: There was an error with output column "acabamento" (66) on output "Excel Source Output" (9). The column status returned was: "Text was truncated or one or more characters had no match in the target code page.".
     (SQL Server Import and Export Wizard)
     
    Error 0xc020902a: Data Flow Task 1: The "output column "acabamento" (66)" failed because truncation occurred, and the truncation row disposition on "output column "acabamento" (66)" specifies failure on truncation. A truncation error occurred on the specified object of the specified component.
     (SQL Server Import and Export Wizard)
     
    Error 0xc0047038: Data Flow Task 1: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED.  The PrimeOutput method on component "Source - Plan1$" (1) returned error code 0xC020902A.  The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing.  There may be error messages posted before this with more information about the failure.
     (SQL Server Import and Export Wizard)


    Darth Tsurth

    segunda-feira, 29 de abril de 2013 14:59

Respostas

  • Darth, bom dia.

    A forma mais fácil e rápida de fazer esta tarefa é "salvar como..." o arquivo excel em CSV. Desta forma vc terá um arquivo texto delimitado por ponto e vírgula ";".Daí, ao invés de vc selecionar no source o componente excel, vc escolhe o "flat file source".

    Desta maneira é possível vc configurar dentro do wizard --> Aba Advanced --> Clique na coluna --> Propriedade OutputColumnWidth ---> vc pode alterar o tamanho source do campo.

    Qualquer dúvida estou a disposição.

    Abs.



    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    • Marcado como Resposta Dudú terça-feira, 30 de abril de 2013 22:52
    terça-feira, 30 de abril de 2013 14:55

Todas as Respostas

  • Darth, boa tarde.

    Quando vc utiliza o Wizard do SQL server, ele monta um pacote integration services temporário por trás do wizard. Sendo assim, quando vc seleciona a opção de importar um arquivo excel, ele utilizar o componente Excel source que por sua vez utiliza as configurações default do driver excel existente no servidor. Este driver é o que dita que o tamanho máximo de uma coluna texto, quando utilizado excel é 255.

    Uma saída seria criar um pacote DTSx no visual studio para transformação do seu dado. No integration services vc tem mais possibilidades de configurações, inclusive configurar o tamanho da coluna source.

    Veja nesta imagem como é possível configurar:

    Na propriedade "Lenght" vc altera o valor para o tamanho que vc deseja.

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    segunda-feira, 29 de abril de 2013 18:35
  • poderia me ajudar?

    não tenho nem idéia de como criar isso no Visual Studio.

    não existe algo mais simples de se fazer?


    Darth Tsurth

    segunda-feira, 29 de abril de 2013 23:31
  • Darth, bom dia.

    A forma mais fácil e rápida de fazer esta tarefa é "salvar como..." o arquivo excel em CSV. Desta forma vc terá um arquivo texto delimitado por ponto e vírgula ";".Daí, ao invés de vc selecionar no source o componente excel, vc escolhe o "flat file source".

    Desta maneira é possível vc configurar dentro do wizard --> Aba Advanced --> Clique na coluna --> Propriedade OutputColumnWidth ---> vc pode alterar o tamanho source do campo.

    Qualquer dúvida estou a disposição.

    Abs.



    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    • Marcado como Resposta Dudú terça-feira, 30 de abril de 2013 22:52
    terça-feira, 30 de abril de 2013 14:55
  • Darth,

    Vou na mesma linha de raciocínio do Eduardo, faria a troca do tamanho dos campos no SQL Server para poder receber os dados.

    O problema não esta no Excel, mas sim, no tamanho dos campos que você esta utilizando, neste caso, da coluna acabamento.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    terça-feira, 30 de abril de 2013 18:42