none
Gerar arquivo txt com colunas concatenadas nas linhas RRS feed

  • Pergunta

  • Boa tarde,

    gostaria de teria como gerar uma procidure onde me traga o arquivo .txt e no mesmo traga as linhas com separador ";" para cada coluna da linha!!


    CharlesTI.

    quarta-feira, 20 de fevereiro de 2019 20:00

Respostas

Todas as Respostas

  • Deleted
    • Marcado como Resposta CHARLES.PTU quinta-feira, 21 de fevereiro de 2019 12:04
    quarta-feira, 20 de fevereiro de 2019 21:36
  • Obrigado José Diz,

    Teria a função para gerar o .txt automatico em pasta?


    CharlesTI.

    quinta-feira, 21 de fevereiro de 2019 12:05
  • Eis solução simples, que utiliza a função nativa CONCAT_WS:

    -- código #1
    SELECT concat_ws (';', CODCOLIGADA, CODSTATUS, DESCRICAO, CODTIPOCURSO) as CSV
      from tabela
      where ...

     

    Outra solução, para versões anteriores ao SQL Server 2017:

    -- código #2
    SELECT cast (CODCOLIGADA as varchar(12)) + ';' +
           cast (CODSTATUS as varchar(12)) + ';' +
           DESCRICAO + ';' +
           cast (CODTIPOCURSO as varchar(12)) as CSV
      from tabela
      where ...


    As duas soluções consideram que não há colunas sem informação (NULL).


    José Diz     Belo Horizonte, MG - Brasil     [Linked In]   [e-mail]   [Porto SQL]


    Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    José,

    Para este mesmo exemplo que você criou, poderíamos utilizar a função Concat() a partir do SQL Server 2012:

    SELECT Concat(CODCOLIGADA,';',
                  CODSTATUS,';',
                  DESCRICAO,';', 
                  CODTIPOCURSO) as CSV
      from tabela
      where ...

    Sem ter a necessidade de realizar conversão explícita.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quinta-feira, 21 de fevereiro de 2019 12:06
  • Deleted
    quinta-feira, 21 de fevereiro de 2019 12:57
  • Para este mesmo exemplo que você criou, poderíamos utilizar a função Concat() a partir do SQL Server 2012.

    Sim, para SQL Server 2012 (e em diante) fica mais simples usar CONCAT. Assim, o código #2 somente é indicado para versões anteriores a SQL Server 2012.

    Se houver possibilidade de coluna sem informação (NULL), também fica mais simples se utilizar a função CONCAT: não é necessário converter para string e nem verificar por NULL.   É estranho que as funções CONCAT e CONCAT_WS tenham comportamento diferente quanto ao NULL.


    José Diz     Belo Horizonte, MG - Brasil     [Linked In]   [e-mail]   [Porto SQL]


    Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    José,

    Sim, existe esta diferença, pois a Concat_WS identifica o Null e ignora, não realiza a concatenação, muito menos fazendo uso do separador.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quinta-feira, 21 de fevereiro de 2019 17:25
  • Deleted
    quinta-feira, 21 de fevereiro de 2019 21:20