Como se conectar a outro banco de dados usando procedimentos armazenados?

11

Eu preciso obter alguns dados de um banco de dados externo e fazer alguns cálculos com ele em outro banco de dados, é possível conectar-se a um banco de dados externo a partir de um procedimento armazenado? Obrigado rapazes.

PS.

Estou usando o Oracle e os dois bancos de dados estão no mesmo servidor.

eiefai
fonte

Respostas:

10

Você deseja usar um link de banco de dados (DBLink).

http://www.stanford.edu/dept/itss/docs/oracle/10g/server.101/b10759/statements_5005.htm

http://psoug.org/reference/db_link.html

-- create tnsnames entry for conn_link
conn_link =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = perrito2)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orabase)
    )
  )


CREATE DATABASE LINK conn_user
USING 'conn_link';

SELECT table_name, tablespace_name FROM user_tables@conn_user; 

@conn_user no final de um nome de procedimento ou tabela informará o mecanismo pl / sql para consultar o link db especificado para essas informações.

REW
fonte
1
Embutida profundamente no seu link PSOUG, há uma referência à dica DRIVING_SITE - o desempenho das consultas nos DBLINKs pode variar bastante - se você SABE onde a maior parte do processamento de dados será realizada, defina o DRIVING_SITE no banco de dados em que os dados o processamento será mais eficiente.
precisa saber é o seguinte
0

sim, você pode ler dados de qualquer banco de dados usando o dg4odbc. Qualquer banco de dados compatível com odbc pode ser conectado ao banco de dados Oracle, desde que você encontre um driver odbc funcional para a plataforma. .odbc.ini e $ ORACLE_HOME / hs / admin são seus locais de configuração.

ik_zelf
fonte