Saída SQL não colando no Excel adequadamente

0

Problema muito estranho.

Eu projeto consultas em T-SQL e freqüentemente copio a saída que aparece na guia "results" no Excel para examinar / analisar os resultados / verificar erros etc.

Recentemente, notei que, em várias ocasiões, quando seleciono os dados de saída na guia "resultados" do T-SQL, clico com o botão direito do mouse, copio e clico com o botão direito do mouse e colo no Excel. não cole corretamente. Por exemplo, hoje, estou colando a saída do SQL em uma planilha do Excel e duas das células na coluna "A" no Excel não contêm nenhum valor. Mas quando eu olho para os dados copiados no Excel, definitivamente há um valor na coluna A. Há vários outros erros de cópia semelhantes.

Alguém mais já encontrou isso? Eu nunca ouvi isso acontecer antes. Mas isso já aconteceu várias vezes ao longo de vários meses.

Este não é um problema trivial, pois as conseqüências disso podem, obviamente, ser bastante significativas.

    
por Statsanalyst 12.12.2016 / 16:22

1 resposta

0

Algumas coisas podem causar isso.
1) Caracteres não imprimíveis em seus dados. Para verificar isso, direcione a saída para um arquivo de texto e abra esse arquivo em um editor de texto que mostre os códigos hexadecimais. A remoção de caracteres não imprimíveis no SQL é abordada em muitas perguntas do StackExchange. Exemplo de pergunta e solução .


2) O Excel está lembrando o comportamento ou a formatação do passado e aplicando-o aos dados atuais. Para corrigir isso, feche todas as instâncias do Excel e comece de novo.

EDIT com base no comentário:
Para remover o CRLF extra, tente algo assim:

Declare @CR as Varchar
Declare @LF as Varchar
Declare @CRLF as Varchar(2) 
Set @CR = CONVERT(VARCHAR, CONVERT(VARBINARY, '0x0D', 1))
Set @LF = CONVERT(VARCHAR, CONVERT(VARBINARY, '0x0A', 1))
Set @CRLF = @CR + @LF

Select Replace(Columnname, @CRLF, '')

Isso é limitado apenas ao CRLF. Se seus dados tiverem mais caracteres hexadecimais, você precisará de algo mais robusto.

    
por 12.12.2016 / 16:36