¿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.

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.


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.