Data

6 jan, 2011

Importar dados de um arquivo txt para uma base de dados com Integration Services

Publicidade

A integração entre sistema sempre está presente entre as aplicações.  Em um artigo anterior demonstrei como capturar as informações que estão na base de dados e colocá-las em um arquivo TXT. Nesse artigo vou demostrar o processo inverso, através de um arquivo TXT realizar uma inserção em uma tabela do banco de dados.

Para realizar esse exemplo, criei uma tabela em um banco de dados qualquer chamado MUNICIPIO. Abaixo temos o script:

CREATE TABLE [dbo].[MUNICIPIO]
(
[CD_MUNICIPIO] [numeric](10, 0) NOT NULL,
[NM_MUNICIPIO] [varchar](100) NULL,
[CD_UF] [varchar](2) NULL,
)
GO

ALTER TABLE MUNICIPIO ADD CONSTRAINT MUNICIPIO_PK PRIMARY KEY (CD_MUNICIPIO)
GO

Com nossa tabela criada, vamos gerar agora um arquivo que irá conter as informações que serão migradas para nossa base de dados. O conteúdo do TXT segue abaixo:

0001;Barra Bonita;SP
0002;São Paulo;SP
0003;Rio de Janeiro;RJ
0004;Curitiba;PR
0005;Palmas;TO
0006;União dos Palmares;AL

Salve o txt e coloque o nome de município.txt. Agora vamos ao nosso projeto, execute o SQL Server Business Intelligence Development Studio, vá em File > New > Project e crie um projeto do tipo Integration Services Project e chame de ImportarMunicipio.

Acesse a toolbox e arraste para dentro Control Flow o componente Data Flow Task. Clique duas vezes sobre o componente para ser levado para a guia Data Flow.

Nessa guia vamos arrastar dois componentes, o primeiro é Flat File Source, que irá acessar um arquivo como base de dados. No nosso exemplo o arquivo município.txt.

Com duplo clique sobre o componente Flat File Source a janela Flat File Sourece Editor será exibida. Clique no botão New e uma nova janela será exibida.

Na coluna Connection manager name preencha com Município. Na coluna File name, clique no botão browser e selecione o arquivo txt que foi criado. Veja que existem outras opções nessa janela, mas deixarei as explicações para outra oportunidade.

Após selecionar o arquivo, do lado direito encontrará a opção Columns, selecione e verá que o próprio componente já conseguiu formatar o arquivo nas colunas. Acompanhe com a imagem abaixo:

Agora selecione a opção Advanced. E aqui vamos formatar o nome das colunas e o tamanho dos campos conforme criamos nossa tabela. Veja como deve ficar:

Clique em OK até retornar a guia Data Flow.

Vamos utilizar o segundo componente que se chama ADO NET Destination. Com ele vamos informar para qual base de dados e para qual tabela irão as informações de nosso arquivo txt.

Primeiro selecione a seta verde do componente Flat File Source e ligue com o componente ADO.NET Destination.

Clique duas vezes nesse componente, uma mensagem será exibida informando que esse componente não tem colunas de entrada e se desejamos configurá-lo, clique na opção Yes.

Com a janela ADO.NET Destination Editor aberta clique no botão New ao lado de Connection manager para criamos uma nova conexão. No caso, com a base em que criamos a tabela MUNICIPIO. (para saber como criar uma conexão acesse o artigo anterior aqui).

Com a conexão criada, na opção Use a table or view, selecione a tabela MUNICIPIO e em seguida clique na opção Mappings. Verá que o próprio componente já conseguiu relacionar as colunas do arquivo com as colunas do componente ADO.NET Destination. Isso porque no passo anterior colocamos os nomes das colunas do arquivo txt igual as da tabela MUNICIPIO, e caso isso não fosse feito, teríamos que informar as colunas para o componente ADO.NET Destination. Veja como ficou:

Pronto! Agora clique em OK e compile seu projeto. Note que os passos ficarão verde, faça uma consulta em sua tabela no banco de dados e veja que os dados do arquivo foram inseridos na tabela.

Espero que tenham gostado, não deixem de comentar. Até a próxima!