Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
marciomgm
Creator
Creator

Conexão em 2 bancos de dados remotos oracle

Como faço para conectar em duas bases oracle via ODBC?

Eu consigo conectar normalmente em uma base.

Veja as configurações do TSNAMES.

# tnsnames.ora Network Configuration File: C:\oracle\product\10.2.0\client_1\network\admin\tnsnames.ora

# Generated by Oracle configuration tools.

DB1 =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = XX.XX.XX.X)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = ORCL)

    )

  )

DB2 =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = YYY.YYY.YYY.YY)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = ORCL)

    )

  )

22 Replies
Clever_Anjos
Employee
Employee

Ambas entradas tem o mesmo SERVICE_NAME?

Não deveriam ser distintas?

marciomgm
Creator
Creator
Author

Não sei te dizer.

Na verdade eu já tenho as configurações do oracle prontas e rodando com o nosso sistema ERP no servidor e nós não temos conhecimento de Oracle.

Em nosso sistema ERP ele faz uso das bases BD1 e BD2 sendo: BD1 acesso ip local e BD2 acesso ip externo.

O problema é que no configurador do ODBC não entende DB1 e DB2, ele só entende esse ORCL que não faço a minima idéia de onde vem esse tal de ORCL

Clever_Anjos
Employee
Employee

ORCL é o servicename de ambas entradas

DB1 =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = XX.XX.XX.X)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = ORCL)

    )

  )

Clever_Anjos
Employee
Employee

Não sei ao certo se funciona, tente renomear uma das entradas para outro nome e veja o que acontece

marciomgm
Creator
Creator
Author

Tentei colocar a segunda conexão assim:

DB2 =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = YYY.YYY.YYY.YY)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = DB2)

    )

  )

Não funcionou.

Veja as configurações do meu cliente do Oracle:

Parece que esse ORCL é o nome do banco de dados oracle.

Screen shot 2013-09-25 at 15.06.44.png

Veja o erro que deu após as alterações acima:

Screen shot 2013-09-25 at 15.07.33.png

Clever_Anjos
Employee
Employee

Meu conhecimento em Oracle é limitado, veja com o seu DBA se é como criar SERVICE_NAME diferentes para cada banco.

Clever_Anjos
Employee
Employee

Marcio,

Ao invés de ODBC, utilize OLEDB.

Usando OLEDB ele vai usar o apelido (DB1,DB2)

marciomgm
Creator
Creator
Author

Poderia me dar um exemplo de como fazer essa conexão OLEDB?

Clever_Anjos
Employee
Employee

Capturar.PNG.png

Capturar2.PNG.png

Capturar3.PNG.png

marciomgm
Creator
Creator
Author

Não funciona. Mesmo problema.

NAO FUNCIONA:

OLEDB CONNECT32 TO [Provider=MSDAORA.1;User ID=MARCIO;Data Source=DB1] (XPassword is PFRWOaVMDbcSWZ);

FUNCIONA:

OLEDB CONNECT32 TO [Provider=MSDAORA.1;User ID=MARCIO;Data Source=ORCL] (XPassword is PFRWOaVMDbcSWZ);