Início > Integration Services > Integration Services: Integração entre Oracle e SQL Server

Integration Services: Integração entre Oracle e SQL Server

Recentemente escrevi alguns artigos sobre integração com arquivo txt com o Integration Services, porém existe outra forma interessante de realizar integração que é através de banco de dados diferentes.

Nesse artigo pretendo fazer um exemplo onde consulto alguns registros no Oracle e realizo um insert desses registro no SQL Server.

A idéia é consultar as cidades que estão na tabela Oracle e importar para o SQL Server.

Crie a seguinte tabela no SQL Server.

CREATE TABLE [dbo].[CIDADE](
	[CD_CIDADE] [numeric](10, 0) NOT NULL,
	[DS_CIDADE] [varchar](100) NULL,
	[CD_UF] [varchar](2) NULL,
 CONSTRAINT [CIDADE_PK] PRIMARY KEY CLUSTERED
(
	[CD_CIDADE] AS
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

Agora crie a seguinte tabela no Oracle

CREATE TABLE MUNICIPIO (
  CODIGO_MUNICIPIO NUMERIC(10) NOT NULL,
  NOME_MUNICIPIO VARCHAR2(100),
  UNIDADE_FEDERATIVA VARCHAR(2)
 );
ALTER TABLE MUNICIPIO ADD CONSTRAINT MUNICIPIO_PK PRIMARY KEY (CODIGO_MUNICIPIO);

Vamos realizar alguns insert na tabela MUNICIPIO na base Oracle.

<p>INSERT INTO MUNICIPIO VALUES (1, 'Barra Bonita', 'SP');
<p>INSERT INTO MUNICIPIO VALUES (2, 'Bauru', 'SP');
<p>INSERT INTO MUNICIPIO VALUES (3, 'Belo Horizonte', 'MG');
<p>INSERT INTO MUNICIPIO VALUES (4, 'São Manuel', 'SP');
<p>

Pronto temos nossa base de dados pronta, agora vamos ao Integration Services. Abra o SQL Server Business Intelligence Development Studio e crie um novo projeto Integration Services Project, chame o IntegracaoEntreBancos.

Na guia Control Flow adicione um componente DataFlow Task. Esse componente suporta um fluxo de dados que permite mover dados de uma fonte de dados para outra fonte. Mais informações sobre ele, acesse aqui.

Clique duas vezes sobre o componente DataFlow Task para que você veja levado a guia Data Flow.

Aqui você deve adicionar 3 componentes:

OLE DB Source: Realiza a conexão e a consulta com o banco de origem, no nosso exemplo o Oracle, mais informações aqui.

Derived Column: Carrega dados de uma variável de dados e realizar uma operação de insert, mais informações aqui.

OLE DB Destination: Gravar os arquivos em outra fonte de dados, pode ser um arquivo texto ou uma base de dados, mais informações aqui.

Com nossos 3 componentes, vamos configurar primeiramente o OLE DB Source, clique duas vezes sobre o componente e a tela OLE DB Source Editor será exibida. Primeiro passo é criar uma conexão com a base Oracle. Clique no botão New e a tela Configure OLE DB Connection Manager será exibida, clique novamente no botão New para criar a conexão.

Em Provider selecione Microsoft OLE DB Provider for Oracle, preencha os campos com usuário e senha e com a conexão com a base e teste a conexão. Com a conexão pronta clique em OK.

De volta a tela de OLE DB Source Editor em Data access mode selecione  SQL Command e digite a seguinte consulta:

<p>SELECT CODIGO_MUNICIPIO,
           NOME_MUNICIPIO,
           UNIDADE_FEDERATIVA
  FROM MUNICIPIO

Clique no botão Preview e veja o resultado da consulta, a tela deve ficar igual da imagem abaixo:

Clique no botão OK e ligue a seta verde do componente OLE BD Source ao componente Derived Column.

Clique duas vezes sobre o componente Derived Column para que a tela Devired Column Transformation Editor seja exibida.

Nesse componente vamos especificar quais as colunas serão retornadas e a alias do retorno, também podemos criar novas colunas através de expressões. Eu não tinha pensando nesse exemplo em utilizar uma coluna de expressão, mas agora decidir usar, então vamos fazer uma alteração na nossa tabela no SQL Server.

Vamos criar uma nova coluna na tabela Cidade no SQL Server, segue abaixo:

ALTER TABLE CIDADE ADD DS_CIDADE_UF NVARCHAR(200)

Essa coluna irá receber o nome da cidade mais o nome a sigla da unidade federativa. Voltando para a tela Derived Column Transformation Editor, realize a configuração igual a imagem abaixo:

O campo Derived Column Name é o nome que será retornado pelo componente. Derived Column é de que coluna essa “nova coluna” será derivada e expression é o valor que será retornado. Veja que a coluna DS_MUNICIPIO_UF criei uma expressão concatenando dois valores. As demais colunas você não precisa adicionar pois as mesma já estão adicionada como você pode ver na imagem acima no quadrado vermelho.

Clique em OK e ligue a seta verde do componente Derived Column com o componente OLE Source Destination.

Agora vamos configurar o OLE Source Destination, clique duas vezes sobre ele para que a tela OLE Source Destination Editor seja exibida. Será necessário criar uma conexão com a base SQL Server, caso você não tenha criado, crie uma como já expliquei em artigos anteriores.

Após criar a conexão em Data access mode selecione Table or View – fast load e em Name of the table or the view selecione a tabela Cidade. Deve ficar como a imagem abaixo:

Do lado superior esquerdo selecione mappings e faça a ligação entre as colunas que o componente Derived Column retorna com as colunas da tabela cidade do banco de dados SQL Server como imagem abaixo:

Pronto nosso projeto está pronto. Execute o projeto e em seguida faça uma consulta na tabela cidade no banco de dados SQL Server, você verá que os registros foram importados e que a coluna DS_MUNICIPIO_UF recebeu a concatenação que criamos no componente Derived Column, como na imagem abaixo:

Espero que tenham gostado e até a próxima.

Anúncios
  1. janeiro 16, 2012 às 1:24 pm

    Parabens, muito util o post!

  2. Sandro Costa da Silva
    agosto 6, 2012 às 3:27 pm

    Excelente post.

    Abraço.

  1. agosto 6, 2012 às 3:04 pm

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: