Wie kann ich mithilfe gespeicherter Prozeduren eine Verbindung zu einer anderen Datenbank herstellen?

11

Ich muss einige Daten von einer externen Datenbank abrufen und einige Berechnungen damit in einer anderen Datenbank durchführen. Ist es möglich, von einer gespeicherten Prozedur aus eine Verbindung zu einer externen Datenbank herzustellen? Danke Leute.

PS.

Ich benutze Oracle und beide Datenbanken befinden sich auf demselben Server.

Eiefai
quelle

Antworten:

10

Sie möchten einen Datenbanklink (DBLink) verwenden.

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 am Ende einer Prozedur oder eines Tabellennamens weist die pl / sql-Engine an, den für diese Informationen angegebenen Datenbanklink abzufragen.

REW
quelle
1
Tief in Ihrem PSOUG-Link ist ein Verweis auf den DRIVING_SITE-Hinweis eingebettet. Die Leistung von Abfragen über DBLINKs hinweg kann sehr unterschiedlich sein. Wenn Sie wissen, wo der größte Teil der Datenverarbeitung stattfinden wird, müssen Sie DRIVING_SITE auf die Datenbank setzen, in der sich die Daten befinden Die Verarbeitung wird am effizientesten sein.
ScottCher
0

Ja, Sie können mit dg4odbc Daten aus jeder Datenbank lesen. Jede odbc-kompatible Datenbank kann mit einer Oracle-Datenbank verbunden werden, sofern Sie einen funktionierenden odbc-Treiber für unsere Plattform finden. .odbc.ini und $ ORACLE_HOME / hs / admin sind Ihre Konfigurationsspeicherorte.

ik_zelf
quelle