Acessando outros bancos
através do Oracle – Serviços Heterogêneos(HS) – Parte 02
4. Realize a inclusão de uma entrada no arquivo Listerner.ora, sua localização é o mesmo que o item anterior, tnsnames.ora.
Exemplo de arquivo listener.ora
# listener.ora Network Configuration File: C:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = MySQL) # SID é o mesmo que foi dado no ODBC
(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
(PROGRAM = hsodbc) # Este
é o nome do executavel do hs(Agente)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = EXCALIBUR)(PORT = 1522))
)
)
5. Devemos nesse momento realizar a configuração do HS propriamente dito, para isso criaremos um arquivo em C:\oracle\product\10.2.0\db_1\hs\admin (ORACLE_HOME\hs\admin). Um detalhenome do arquivo deverá ser init<Nome_entrada>.ora no nosso caso initMySQL.ora. o
# This is a sample agent init file that contains the HS parameters that are
# needed for an ODBC Agent.
#
# HS init parameters
#
HS_FDS_CONNECT_INFO = MySQL # Entrada
do ODBC
HS_FDS_TRACE_LEVEL = 0 # Nível
do trace 0 - 4 (Verifique a documentação) , LOG.
HS_FDS_TRACE_FILE_NAME = MySQL.trc # Nome do arquivo
de trace
#
# Environment variables required for the non-Oracle system
#
#set =
6. Nesse momento devemos re-iniciar o Listener, podemos utilizar os seguintes comandos:
· lsnrctl stop
· lsnrctl start
7.
Criar um dblink no banco oracle apontado para usar o servico MySQL:
CREATE DATABASE LINK dblink_MYSQL connect to "USER_MYSQL" identified by "PASSWORD_USER" using ‘MySQL’ ; # O usuário e senha devem estar entre aspas duplas, pois o Oracle é case não-sensitivo e dessa foram estamos instruindo ao banco que o usuário e a senha devem ser enviado respeitando a forma o qual foram digitados(Case Sensitive).
8. Concluídos esses procedimentos podemos então a partir da base Oracle acessar a base MySQL, não-Oracle, da
seguinte forma:
SELECT * FROM “Tabela”.@ dblink_MYSQL;
Nesse caso tenhamos que acessar os campos, e eles não estejam em maisuculas no Banco de Dados, teremos que fazer o seguinte:
SELECT “Nome”,”Departamento” FROM “Departamento”.@ dblink_MYSQL;
Repare a necessidade das aspas duplas(“ “) em função do dicionário de dados do Oracle ser em maiúsculas todos esses campos são convertidos para maiúsculas, o que para alguns bancos acessados dessa maneira isso pode se tornar um problema.
Concluindo essa é mais uma possibilidade para acessar um outro Banco de Dados, devemos ter em foco que essa opção deixa a dever muitas vezes em desempenho, porém sua praticidade e usabilidade para pequenos volumes de dados nos permite utilizar essa técnica para produzir um ambiente de SGBD Federalizado.
IV – Para saber mais
http://download-east.oracle.com/docs/cd/B19306_01/gateways.102/b14270.pdf
http://www.iselfschooling.com/mc4articles/odbc4sqlserver.htm
http://www.scribd.com/doc/3146805/Oracle-Heterogeneous-Configuration-for-MySQL-with-ODBCOLEDB