none
Dúvida bcp command RRS feed

  • Pergunta

  • Boa tarde,

    Pessoal, estou com esse problema há duas semanas, e não tem jeito de achar uma solução.

    Devo gerar um arquivo em um formato específico que é enviado para um equipamento. O problema é que o bcp não possui (pelo menos não em sua documentação), uma forma de gerar o arquivo sem um caracter de finalização e eu preciso sem nenhum.

    http://msdn.microsoft.com/en-us/library/ms191485.aspx

    Todos os finalizadores documentados escrevem pelo menos um byte no arquivo, e preciso que o arquivo possua somente os dados da String que estou passando.

    Existe alguma forma de fazer isso?

    quinta-feira, 4 de outubro de 2012 19:45

Todas as Respostas

  • Boa noite, Marcelo,

    Coloque aqui pra gente o código que você está utilizando para gerar o arquivo para que possamos te ajudar da melhor maneira possível.

    No aguardo,

    Ruberlei.

    sexta-feira, 5 de outubro de 2012 01:03
  • Marcelo,

    Existirão várias linhas na sua exportação?

    Você não quer um caractere finalizador ou não quer um caracter que indique término de cada linha?


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    sexta-feira, 5 de outubro de 2012 10:44
  • Bom dia Roberson,

    Eu não quero o caractere finalizador.

    É gerado uma String única seguindo uma regra de formatação específica para um equipamento, todo o conteúdo da String esta ok, o problema é que o bcp não possui um parâmetro que permita escrever o arquivo sem um finalizador.

    O equipamento não valida meu arquivo devido ao byte adicional gerado por esse caractere finalizador, removendo esse byte manualmente (utilizando um editor de texto), o equipamento valida o arquivo.

    O comando que esta sendo executado é o seguinte

    et @str='Exec Master..xp_Cmdshell ''bcp "'+ @CmdSQL +'" queryout "'+@FileName+'" -c -T'''

    Nesse exemplo não estou passando o parâmetro para o caractere de finalização, o bcp escreve um 0x0d 0x0a (cr + lf), que é o finalizador default, ou seja, gera 2 bytes que invalidam o formato do meu arquivo. 

    Qualquer sugestão é bem vinda.

    sexta-feira, 5 de outubro de 2012 13:09
  • Marcelo, veja o que encontrei no Books OnLine:

    "Se você especificar a opção -n (dados nativos) ou -N (nativo de Unicode), os terminadores não serão inseridos."

    Faça o teste por favor adicionando um desses parâmetros.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    sexta-feira, 5 de outubro de 2012 13:26