Comment se connecter à une autre base de données en utilisant des procédures stockées?

11

J'ai besoin d'obtenir des données d'une base de données externe et de faire des calculs avec dans une autre base de données, est-il possible de se connecter à une base de données externe à partir d'une procédure stockée? Merci les gars.

PS.

Im utilisant Oracle et les deux bases de données sont sur le même serveur.

eiefai
la source

Réponses:

10

Vous souhaitez utiliser un lien de base de données (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 à la fin d'un nom de procédure ou de table indiquera au moteur pl / sql d'interroger le lien db spécifié pour cette information.

REW
la source
1
Intégré profondément dans votre lien PSOUG est une référence à l'indication DRIVING_SITE - les performances des requêtes à travers DBLINK peuvent varier considérablement - si vous SAVEZ où la plupart du traitement des données va être fait, assurez-vous de définir DRIVING_SITE sur la base de données où les données le traitement sera plus efficace.
ScottCher
0

oui, vous pouvez, vous pouvez lire les données de n'importe quelle base de données en utilisant dg4odbc. Vous pouvez vous connecter à n'importe quelle base de données compatible ODBC et à la base de données Oracle, à condition de trouver un pilote ODBC fonctionnel pour notre plate-forme. .odbc.ini et $ ORACLE_HOME / hs / admin sont vos emplacements de configuration.

ik_zelf
la source