none
Convertendo numerico para varchar RRS feed

  • Pergunta

  • Olá!

    Tenho uma planilha Excel que preciso importar para uma tabela no SQL, nesta planilha tem um campo EAN que está formatado como numérico, porém não posso deixar esse campo numérico no SQL por conta de compatibilidade... Meu problema é que ao converter esse campo para varchar ele fica assim.. De: 7892110209083 para 7.89211e+012

    Já tentei algumas coisas, mas nada deu certo!

    Grato,

    Rogerio Borsoi


    Rogerio Borsoi

    segunda-feira, 30 de janeiro de 2017 15:49

Respostas

  • Tente assim:

    if object_id('tempdb..#teste') is not null
    	drop table #teste
    create table #teste (id int identity, Ean1 varchar(15), Ean2 varchar(15))
    
    insert into #teste (ean1, ean2)
    select LTRIM(Str(EAN, 15, 0)), LTRIM(Str(EAN, 15, 0))
    FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 8.0;Database=E:\Temp\Estoque.xlsb', [Estoques$]) as Excel


    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski

    segunda-feira, 30 de janeiro de 2017 16:20

Todas as Respostas

  • Qual tecnologia voce esta usando para importar? SSIS?

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    segunda-feira, 30 de janeiro de 2017 15:55
  • Olá William, estou utilizando o OPENROWSET... Veja nesse exemplo:

    if object_id('tempdb..#teste') is not null
    	drop table #teste
    create table #teste (id int identity, Ean1 varchar(15), Ean2 varchar(15))
    
    insert into #teste (ean1, ean2)
    select cast([EAN] as varchar), convert(varchar(15), [EAN])
    FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 8.0;Database=E:\Temp\Estoque.xlsb', [Estoques$]) as Excel

    Os dois casos ficam assim:

    


    Rogerio Borsoi

    segunda-feira, 30 de janeiro de 2017 16:12
  • Tente assim:

    if object_id('tempdb..#teste') is not null
    	drop table #teste
    create table #teste (id int identity, Ean1 varchar(15), Ean2 varchar(15))
    
    insert into #teste (ean1, ean2)
    select LTRIM(Str(EAN, 15, 0)), LTRIM(Str(EAN, 15, 0))
    FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 8.0;Database=E:\Temp\Estoque.xlsb', [Estoques$]) as Excel


    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski

    segunda-feira, 30 de janeiro de 2017 16:20