- Este tópico contém 4 respostas, 2 vozes e foi atualizado pela última vez 16 anos, 1 mês atrás por
airoosp.
-
AutorPosts
-
22 de janeiro de 2010 às 8:57 pm #92263
airoosp
ParticipanteBoa tarde,
Preciso criar um JOB que seja executado todos os dias e faça insert e update em duas tabelas do Sql Server onde a origem dos dados é o Oracle. Criar o job, procedure não há problema, o que eu não sei é fazer com que o Oracle acesse tabelas do Sql Server. Será necessário utilizar ODBC?
Obrigado.
Airton
22 de janeiro de 2010 às 9:08 pm #92264VitorLeandro
ParticipanteVocê precisa utilizar o Oracle Heterogeneous Services caso faça isso através do Oracle. Já consegui fazer funcionar somente para teste mesmo, pois é bastante complicado!
Faça pelo SQLServer que é bem mais fácil… Utilize o DTS ou SSIS…
Mas se realmente quiser fazer com o Oracle, segue um link explicando…
http://download-west.oracle.com/docs/cd … co.htm#173
22 de janeiro de 2010 às 9:20 pm #92266airoosp
ParticipanteEstou aprimorando os meus conhecimentos sobre Oracle, fiz os cursos mas o aprendizado é dia a dia. Não tenho nenhum conhecimento sobre Sql Server, pois aqui na empresa utilizamos Oracle 9i e uma das aplicações utiliza o Sql Server.
26 de janeiro de 2010 às 8:11 pm #92285airoosp
ParticipanteBoa tarde,
Consegui configurar o ambiente para acesso ao SqlServer através do HS mas ao utilizar o database link para acessar as tabelas do SqlServer, o Oracle exibe a mensagem de erro:
ORA-12505: TNS:listener não pôde resolver SID fornecido no descritor de conexão.
Verifiquei as configurações do listener.ora, tnsnames.ora e initSQLSERVER.ora este criado para utilizar a conexão via ODBC.
O serviço do listener foi parado e executado novamente e o erro continua. Executando TNSPING ACESSO_SQLSERVER que foi criado no TNSNAMES.ORA o resultado é OK 10.
Alguém tem idéia do que pode estar errado, utilizo Oracle 9i.
Obrigado.
Airton
29 de janeiro de 2010 às 11:50 pm #92378airoosp
ParticipanteApó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 = NOHS_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
-
AutorPosts
- Você deve fazer login para responder a este tópico.