¿Cómo conectarse a otra base de datos utilizando procedimientos almacenados?

11

Necesito obtener algunos datos de una base de datos externa y hacer algunos cálculos con ella en otra base de datos, ¿es posible conectarme a una base de datos externa desde un procedimiento almacenado? Gracias chicos.

PD.

Estoy usando Oracle y ambas bases de datos están en el mismo servidor.

eiefai
fuente

Respuestas:

10

Desea utilizar un enlace de base de datos (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 al final de un procedimiento o nombre de tabla le indicará al motor pl / sql que consulte el enlace db especificado para esa información.

REW
fuente
1
Incrustado en lo profundo de su enlace PSOUG hay una referencia a la sugerencia DRIVING_SITE: el rendimiento de las consultas a través de DBLINK puede variar enormemente; si SABE dónde se realizará la mayor parte del procesamiento de datos, asegúrese de configurar DRIVING_SITE en la base de datos donde se encuentran El procesamiento será más eficiente.
ScottCher
0

Sí, puede leer datos de cualquier base de datos utilizando dg4odbc. Cualquier base de datos compatible con odbc puede conectarse a una base de datos Oracle, siempre que pueda encontrar un controlador odbc que funcione para nuestra plataforma. .odbc.ini y $ ORACLE_HOME / hs / admin son sus ubicaciones de configuración.

ik_zelf
fuente