Retirando a conversão de valores do BCP

Um processo comum que possuímos em nossos ambientes é a importação de dados ou utilizando BulkInsert,BCP, Integration Services enfim e dentro dessa rotina de importação de dados é normal que possuímos registros contendo acentos. E uma coisa que pergunto a vocês é: Como realizar a importação e exportação desses dados sem alterar seu reais valores. Abaixo segue uma dica bastante simples de como realizar esses procedimentos sem retirar os acentos.

No primeiro exemplo vou realizar uma exportação de dados de uma tabela chamada tblBCPExport. A sintaxe abaixo você deve colocar no prompt de comando (CMD)

bcp “bcpExport.dbo.tblbcpExport” out “C:\temp\BCPDBExport.txt” -n -SFRECCIA –T -CRAW –c

image

Olhando o resultado.

image

Agora vem a questao. Qual o parâmetro especificado que nos permite que nenhuma conversão seja realizado nos valores que são exportados?

De acordo com a documentação http://msdn.microsoft.com/en-us/library/aa174646(v=sql.80).aspx temos o seguinte parâmetro “-C code_page”

image

Analisando a tabela acima o código que necessitamos acrescentar então é RAW. O mesmo diz na documentação que nenhuma conversão ocorrera. Verificando a sintaxe do bcp temos o parametro –CRAW especificado.

Mas e na importaçao o mesmo se aplica? Vamos testar.

Possuo uma tabela chamada tblBCPImport na qual vou pegar o resultado do arquivo txt e inserir nessa tabela com o seguinte comando.

bcp “bcpImport.dbo.tblbcpImport” in “C:\temp\BCPDBExport.txt” -n -SFRECCIA –T -CRAW –c

Temos o seguinte resultado

image

Vamos inserir agora sem utilizar o parametro –CRAW.

Comando BCP.

bcp “bcpImport.dbo.tblbcpImport” in “C:\temp\BCPDBExport.txt” -n -SFRECCIA –T  –c

image

Como podem ver a formataçao do resultado ficou totalmente errada.

Bom pessoal por hoje é isso, apenas uma dica de como utilizar o comando BCP.

Abraços,
Marcos Freccia
[MCTS|MCITP|MCT SQL Server 2008]

Advertisements

About Marcos Freccia

MVP em SQL Server (Data Plataform) , especialista em SQL Server, e atualmente trabalhando com Microsoft Azure!

Posted on April 18, 2012, in Desenvolvimento, VirtualPass and tagged , , . Bookmark the permalink. 1 Comment.

  1. Muito boa a dica Marcos,
    Vou publicar no meu blog te referenciando, OK?

    Valeu e Abraço!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: