Integrando PostgreSQL e Oracle com Foreign Data Wrapper
Em um mundo crescentemente interconectado, as organizações frequentemente encontram a necessidade de conectar diferentes sistemas de gerenciamento de banco de dados (SGBDs). Este artigo aborda uma técnica eficaz para integrar PostgreSQL e Oracle usando o Foreign Data Wrapper (FDW) do PostgreSQL.
Introdução ao FDW
O Foreign Data Wrapper (FDW) foi introduzido no PostgreSQL 9.1, proporcionando uma maneira de acessar dados em fontes externas diretamente de um banco de dados PostgreSQL. Para o nosso propósito de conectar PostgreSQL e Oracle, usaremos um FDW específico chamado oracle_fdw
.
Passo a passo para a Integração
Instalação:
- Primeiro, instale o cliente Oracle no mesmo servidor do PostgreSQL.
- Em seguida, baixe e instale o
oracle_fdw
.
Configuração no PostgreSQL
Ative o oracle_fdw
:
CREATE EXTENSION oracle_fdw;
CREATE EXTENSION
Crie um servidor estrangeiro:
CREATE SERVER oracle_server
FOREIGN DATA WRAPPER oracle_fdw
OPTIONS (dbserver 'OracleDBHostname:Port/SID');
CREATE SERVER
Defina um mapeamento de usuário
CREATE USER MAPPING FOR postgres
SERVER oracle_server
OPTIONS (user 'OracleUsername', password 'OraclePassword');
CREATE USER MAPPING
Importe a tabela estrangeira
CREATE FOREIGN TABLE pg_oracle_table (
column1 type1,
column2 type2,
...
) SERVER oracle_server
OPTIONS (schema 'OracleSchema', table 'oracle_table');
CREATE FOREIGN TABLE
Consultando os Dados
Uma vez configurado, você pode tratar a tabela pg_oracle_table
quase como qualquer outra tabela no PostgreSQL:
SELECT * FROM pg_oracle_table LIMIT 5;
column1 | column2
---------+---------
value1 | valueA
value2 | valueB
value3 | valueC
value4 | valueD
value5 | valueE
(5 rows)
Exemplo prático
Suponha que no Oracle você tenha uma tabela employees
com colunas id
, name
e salary
. Após executar a configuração acima, você pode consultar os cinco empregados com os maiores salários diretamente do PostgreSQL:
SELECT name, salary FROM pg_oracle_table
ORDER BY salary DESC
LIMIT 5;
Considerações e Dicas
- Garanta que as variáveis de ambiente
ORACLE_HOME
eLD_LIBRARY_PATH
estejam corretamente configuradas. - A integração utiliza a autenticação e autorização do Oracle. Portanto, assegure-se de que o usuário Oracle tenha as devidas permissões.
- O
oracle_fdw
oferece várias opções que podem otimizar a performance.
Conclusão
O Foreign Data Wrapper é uma ferramenta poderosa do PostgreSQL que facilita a integração com outros sistemas de banco de dados, como o Oracle.
Espero que esse artigo o ajude a atender as suas necessidades de conexão entre o Postgre SQL e o Oracle.
Abs
Referências
- PostgreSQL Official Documentation. “CREATE FOREIGN DATA WRAPPER”.
- Laurenz Albe. “oracle_fdw – Foreign Data Wrapper for Oracle”. GitHub Repository.