none
BCP gerando txt com caracteres incorretos EX: 'descri‡Æo' RRS feed

  • Pergunta

  • Boa tarde,

    Estou utilizando rotina de BCP para gerar arquivos, porém, quando a informação possui acentuação e casas numéricas ocorre alguns problemas.

    1 - Problema com caracteres especiais:

    Resultado do select é: 10|teste com descrição|23,84354||0|

    Resultado do texto gerado via BCP é: 10|teste com descri‡Æo|23.8435||0|

    2 - Problema com casas numéricas:

    Resultado select é: 10|teste com descrição|23,84354||0|

    Resultado texto gerado via BCP é: 10|teste com descri‡Æo|23.8435||0|

    Como resolver ou contornar esse tipo de problema?


    Atenciosamente, Ruberlei. www.t-sql.com.br

    segunda-feira, 26 de janeiro de 2015 16:32

Respostas

  • Deleted
    • Marcado como Resposta Ruberlei terça-feira, 27 de janeiro de 2015 12:53
    terça-feira, 27 de janeiro de 2015 11:08
  • Bom dia,

    Agradeço ajuda de todos, mais acabei descobrindo forma de resolver.

    Segue como resolvi meu problema:

    EXEC master..xp_cmdshell ' BCP "SELECT DESCRICAO FROM T_TESTE "  QUERYOUT D:\teste.TXT /S MAQ\SQL2014 /m0 /b100 -w  /t /U sa /r \n /P senhabd ' 

    Apenas realizei a troca de '-c' para '-w'.


    Atenciosamente, Ruberlei. www.t-sql.com.br

    • Marcado como Resposta Ruberlei terça-feira, 27 de janeiro de 2015 10:39
    terça-feira, 27 de janeiro de 2015 10:35

Todas as Respostas

  • Na primeira questão é você fazer um replace dos caracteres especiais no banco, e na segunda converte para texto
    segunda-feira, 26 de janeiro de 2015 18:26
  • Na primeira questão é você fazer um replace dos caracteres especiais no banco, e na segunda converte para texto

    Não concordo em ter que fazer o replace pois teria que prever N situações acredito que deva ter uma outra saída para essa situação.


    Atenciosamente, Ruberlei. www.t-sql.com.br

    segunda-feira, 26 de janeiro de 2015 18:46
  • Veja se isso te ajuda então:

    Alter native of UTF8 support in SQLSERVER 2008 R2
    1. if u are importing multiligual file keep this in UTF16(UCS2[LE]) format rather than UTF8 because BCP import dont support UTF8 code page in MS SQLSERVER R2.
    
    2.table where u importing multiligual character, column should be NVARCHAR type
    
    Follow BCP Command for import data
    bcp [DATABASE].[dbo].[tablename] in TestBCP.txt(UTF16 format) -S<SERVER> -U<USRName> -P<PWD> -C -w
    option -w support widecharacter(after 256)

    Fonte
    • Editado Mr. GMSOFT segunda-feira, 26 de janeiro de 2015 18:50
    segunda-feira, 26 de janeiro de 2015 18:49
  • Deleted
    segunda-feira, 26 de janeiro de 2015 23:30
  • Bom dia, Jose,

    Sim consta a opção -C.

    EXEC master..xp_cmdshell ' BCP "SELECT DESCRICAO FROM T_TESTE "  QUERYOUT D:\teste.TXT /S MAQ\SQL2014 /m0 /b100 -c  /t /U sa /r \n /P senhabd ' 


    Atenciosamente, Ruberlei. www.t-sql.com.br

    terça-feira, 27 de janeiro de 2015 10:32
  • Bom dia,

    Agradeço ajuda de todos, mais acabei descobrindo forma de resolver.

    Segue como resolvi meu problema:

    EXEC master..xp_cmdshell ' BCP "SELECT DESCRICAO FROM T_TESTE "  QUERYOUT D:\teste.TXT /S MAQ\SQL2014 /m0 /b100 -w  /t /U sa /r \n /P senhabd ' 

    Apenas realizei a troca de '-c' para '-w'.


    Atenciosamente, Ruberlei. www.t-sql.com.br

    • Marcado como Resposta Ruberlei terça-feira, 27 de janeiro de 2015 10:39
    terça-feira, 27 de janeiro de 2015 10:35
  • Deleted
    • Marcado como Resposta Ruberlei terça-feira, 27 de janeiro de 2015 12:53
    terça-feira, 27 de janeiro de 2015 11:08
  • Realmente deu certo.

    Portanto tanto o -w (Minha resposta) quanto o -C (resposta Jose) resolveram o problema.


    Atenciosamente, Ruberlei. www.t-sql.com.br


    • Editado Ruberlei terça-feira, 27 de janeiro de 2015 12:55 ajuste
    terça-feira, 27 de janeiro de 2015 12:54