Arquivos de formato (format file) no SQL Server

Nesse artigo veremos a estrutura de um format file nonXML e como geramos o mesmo a partir de um utilitário de linha de comando: o bcp.

Primeiro: o que é um format file? É um arquivo que contém a estrutura dos dados armazenados em um flat file.

Ops… o que é um flat file? É um arquivo onde os dados não seguem uma estrutura relacional - seguem uma estrutura posicional.

Um exemplo (parcial) de um flat file é:

… 441@ADAPTADOR BLUETOOTH ENCORE CLASS 2@110.00 311@ADAPTADOR RCA 2F / 2F@1.00 500@ADAPTADOR UHF@25.00 528@ADAPTADOR USB G WIRELESS KAIOMY@99.00 134@ADAPTADOR VHSC / VHS ELETRICO@49.00 510@ADAPTADOR WIRELESS USB G ENCORE@100.00 51@APLICADOR ETIQUETA CD CARD PIMACO@13.00 …

O que podemos deduzir a partir desse fragmento de arquivo? Que contém produtos. Que cada linha representa um produto diferente. Que a primeira coluna talvez represente o código do produto. Que a segunda coluna é o nome do produto. Que a terceira coluna (talvez) representa o preço do produto. Que o símbolo @ separa uma coluna da outra.

OK… para isso é que existe a documentação de sistemas. Mas deduzimos corretamente, dessa vez. E como eu “falo” para o SQL Server que ele deve usar o arroba, que o arquivo tem três colunas? Usando o format file. Podemos gerar um format file em formato XML ou texto (nonXML).

No exemplo abaixo, crio um arquivo de formato a partir databela de produtos, usando um aplicativo de prompt chamado BCP (bulk copy program). Para usá-lo, abra o prompt de comando (DOS), digite o comando e dê um ENTER.

BCP EXEMPLO_COPIA..PRODUTO FORMAT NUL -c -t\t -f produtosTab.fmt -T

O arquivo gerado tem o seguinte conteúdo:

9.0 3 1 SQLCHAR 0 12 “\t” 1 COD “” 2 SQLCHAR 0 50 “\t” 2 NOME SQL_Latin1_General_CP1_CI_AS 3 SQLCHAR 0 41 “\r\n” 3 PRECO “”

Onde:

Confira também

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados