none
Exportar txt com delimitador RRS feed

  • Pergunta

  • Boa tarde,

    Fiz uma procedure e assim que executo tenho que colocar no excel salvar como csv e depois salcar como txt.

    Gostaria de saber qual comando devo estudar para gerar direto no txt com delimitador (;)?

    Desde já agradeço a atenção.

    sexta-feira, 22 de janeiro de 2016 16:17

Respostas

  • Pode usar o BCP para isso.

    Abaixo página oficial da Microsoft, com informações e como usar o utilitário:

    https://msdn.microsoft.com/pt-br/library/ms162802%28v=sql.120%29.aspx?f=255&MSPPError=-2147217396 

    Qualquer dúvida, permaneço à disposição.

    • Sugerido como Resposta FLauffer sexta-feira, 22 de janeiro de 2016 16:26
    • Marcado como Resposta Marcos SJ sexta-feira, 22 de janeiro de 2016 18:39
    sexta-feira, 22 de janeiro de 2016 16:21

Todas as Respostas

  • Pode usar o BCP para isso.

    Abaixo página oficial da Microsoft, com informações e como usar o utilitário:

    https://msdn.microsoft.com/pt-br/library/ms162802%28v=sql.120%29.aspx?f=255&MSPPError=-2147217396 

    Qualquer dúvida, permaneço à disposição.

    • Sugerido como Resposta FLauffer sexta-feira, 22 de janeiro de 2016 16:26
    • Marcado como Resposta Marcos SJ sexta-feira, 22 de janeiro de 2016 18:39
    sexta-feira, 22 de janeiro de 2016 16:21
  • Boa tarde,

    Usei o seguinte comando.:

    exec xp_cmdshell 'BCP MIGRACAO.DBO.TESTE OUT "C:\teste.txt" -c -U sa -P senha -S 192.168.39.131 -t[;] -r{#}\n -CP850 -T -Slocalhost'

    Ocorre o erro.: 

    SQLState = S1000, NativeError = 0

    Error = [Microsoft][ODBC Driver 11 for SQL Server]Não é possível abrir o arquivo de dados do host BCP
    NULL

    segunda-feira, 25 de janeiro de 2016 17:22
  • Acho que o problema pode estar relacionado a estar sendo utilizado 2 vezes o mesmo parâmetro de Server para 2 locais diferentes. Tente remover no final: "-Slocalhost"

    exec xp_cmdshell 'BCP MIGRACAO.DBO.TESTE OUT "C:\teste.txt" -c -U sa -P senha -S 192.168.39.131 -t[;] -r{#}\n -CP850 -T'

    segunda-feira, 25 de janeiro de 2016 17:46
  • Ainda não deu certo.
    segunda-feira, 25 de janeiro de 2016 18:59
  • Mesmo erro?

    Talvez o usuário esteja sem acesso ao diretório (O usuário que executa é o que está definido no serviço do SQL Server).

    Outro ponto, estás a utilizar -T, então nem precisa especificar usuário e senha com -U e -P, pois está sendo utilizado Integrated Connection.

    segunda-feira, 25 de janeiro de 2016 19:12
  • Deu o mesmo erro.

    Tentei com o usuário do banco 'sa' e com o usuario da maquina.

    exec xp_cmdshell 'BCP MIGRACAO.DBO.TESTE OUT "c:\teste.TXT" -T -c'

    exec xp_cmdshell 'BCP MIGRACAO.DBO.TESTE OUT "c:\teste.txt" -c -t[;] -r{#}\n -CP850 -T -Slocalhost'

    Nenhum da certo.

    segunda-feira, 25 de janeiro de 2016 20:08
  • tem que criar algum usuário?
    segunda-feira, 25 de janeiro de 2016 21:15
  • O usuário que executará é o que está definido no serviço do SQL Server.

    Esse usuário tem acesso de escrita no diretório C:\Teste do local onde está tentando executar o BCP?

    terça-feira, 26 de janeiro de 2016 10:18
  • Você está executando via SSMS ?

    Se SIM, vá em Ferramentas, Opções, Resultado da Consulta, SQL Server e Resultados em Texto.

    É possível especificar um delimitador padrão ou qualquer outro, como o pipe ("|"), por exemplo!

    Só não esqueça de selecionar para gerar resultados em arquivo no momento da execução... 

    Resolveu?

    terça-feira, 26 de janeiro de 2016 15:42