Jak połączyć się z innym db przy użyciu procedur przechowywanych?

11

Potrzebuję pobrać dane z zewnętrznego db i wykonać z nim obliczenia w innym db, czy można połączyć się z zewnętrznym db z procedury składowanej? Dzięki chłopaki.

PS.

Korzystam z Oracle, a obie bazy danych są na tym samym serwerze.

eiefai
źródło

Odpowiedzi:

10

Chcesz użyć łącza do bazy danych (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 na końcu procedury lub nazwa tabeli poinformuje silnik pl / sql o zapytaniu o łącze db określone dla tej informacji.

REW
źródło
1
Głęboko w twoim linku PSOUG znajduje się odniesienie do podpowiedzi DRIVING_SITE - wydajność zapytań w DBLINK może się znacznie różnić - jeśli WIESZ, gdzie będzie przetwarzana większość danych, pamiętaj, aby ustawić DRIVING_SITE na bazę danych, w której dane przetwarzanie będzie najbardziej wydajne.
ScottCher
0

tak, możesz, możesz czytać dane o dowolnej bazie danych za pomocą dg4odbc. Można połączyć się z dowolną bazą danych odbc zgodną z bazą danych Oracle, pod warunkiem, że można znaleźć działający sterownik odbc dla naszej platformy. .odbc.ini i $ ORACLE_HOME / hs / admin to lokalizacje konfiguracji.

ik_zelf
źródło