OBS - Conexões Oracle/Terceiros é chamada de Generic Heterogeneous Services.
Muito simples de ser feito, envove as seguintes etapas:
- Criar o odbc pra planilha;
- Configurar o listener/tnsnames.
- Configurar o parametro HS_FDS_CONNECT_INFO em $ORACLE_HOME/hs/admin/initXXX.ora.
- Reload do listener.
- Criar o DB link.
2) Configurar o listener/tnsnames
OBS - As modificações necessárias estão em negrito.
tnsnames.ora:
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dhnomura)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
testing_hs = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = dhnomura)(PORT = 1521)) ) (CONNECT_DATA =(SID = testing_hs) (SRVR = DEDICATED) ) (HS = OK) )
listener.ora:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = c:\oraclexe\app\oracle\product\10.2.0\server\)
(PROGRAM = extproc)
)
)
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\oraclexe\app\oracle\product\10.2.0\server)
(PROGRAM = extproc)
)
(SID_DESC = (SID_NAME = testing_hs) (ORACLE_HOME =c:\oraclexe\app\oracle\product\10.2.0\server\) (PROGRAM = hsodbc) )
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
(ADDRESS = (PROTOCOL = TCP)(HOST = dhnomura)(PORT = 1521))
)
)
DEFAULT_SERVICE_LISTENER = (XE)
3) Configurar o parametro HS_FDS_CONNECT_INFO em $ORACLE_HOME/hs/admin/initXXX.ora.
Se torna necessário criar o arquivo $ORACLE_HOME/hs/admin/intiXXX.ora substituindo os xxx do nome pelo nome dado nos tnsnames.ora e listener.ora no sid_name, no caso ficará como:
$ORACLE_HOME/hs/admin/inittesting_hs.ora
Adicionar as entradas no arquivo:
# 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 = ts
HS_FDS_TRACE_LEVEL = 0
#
# Environment variables required for the non-Oracle system
#
#set=
OBS - HS_FDS_CONNECT_INFO é igual ao nome dado a fonte de dados ODBC.
4) Reload ou stop/start do lister.
LSNRCTL> reload
Estabelecendo conexπo com (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_X
E)))
O comando foi executado com Ωxito
5) Criar os db link:
SQL> create database link excel using 'testing_hs’;
Database link created.
Agora como teste final acessar os dados da planilha:
SQL> select count(*) from Planilha1$@excel;
COUNT(*)
----------
664
Obs - Planilha1 é o nome da planilha e não o nome do arquivo em sí.