› Fóruns › Banco de dados Oracle › Usar o hsodbc.exe › Usar o hsodbc.exe
Após muitas pesquisas na Internet consegui resolver o problema, segue abaixo a solução.
Ambiente utilizando 2 servidores sendo:
Server 1 ( Windows Server e instalados Oracle 9i e SqlServer 2005 )
Server 2 ( Windows Server e instalado Oracle 9i )
No Server 1 é necessário configurar uma conexão ODBC que aponte para o SqlServer utilizando um usuário/senha criado neste banco.
Depois alterar o arquivo LISTENER.ORA onde o nome do sid_name deverá ser o nome da conexão ODBC.
Além disso é necessário especificar o programa hsodbc no parâmetro PROGRAM.
Exemplo do listener.ora:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(ORACLE_HOME = e:oracleora92)
(SID_NAME = ACSQL)
(PROGRAM = hsodbc)
)
.
.
.
Depois fazer uma cópia do arquivo inithsodbc.ora para initNOMEDACONEXAOODBC.ora e após criar o arquivo alterar os 2 parâmetros conforme exemplo abaixo:
initACSQL.ora
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 = ACSQL
HS_FDS_TRACE_LEVEL = NO
HS_FDS_TRACE_FILE_NAME = trace1.trc
HS_FDS_SHAREABLE_NAME = E:oracleora92ODBC
#
Environment variables required for the non-Oracle system
#
No Server 2 é necessário alterar o arquivo TNSNAMES.ORA acrescentado uma chamada para a conexão ao SqlServer conforme example abaixo:
ACESSO_SQL =
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=tcp)
(HOST=172.17.6.15)
(PORT=1521)
)
(CONNECT_DATA=
(SID=ACSQL)
)
(HS=OK)
)
Ainda no Server 2 verificar se o parâmetro GLOBAL_NAMES esta com o valor FALSE, se não alterar o parâmetro. Criar um database link utilizando a nova conexão criada no arquivo TNSNAMES.ORA
O HS significa heterogeneous services.
A partir da versão 10g o HS foi substituido pelo DG4ODBC conforme informação pesquisada na Internet.
Obrigado.
Airton