Как подключиться к другому БД с помощью хранимых процедур?


11

Мне нужно получить некоторые данные из внешней базы данных и выполнить с ней некоторые вычисления в другой базе данных. Можно ли подключиться к внешней базе данных из хранимой процедуры? Спасибо, парни.

PS.

Я использую Oracle, и обе базы данных находятся на одном сервере.

Ответы:


10

Вы хотите использовать ссылку на базу данных (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 в конце имени процедуры или таблицы сообщит механизму pl / sql запросить ссылку на db, указанную для этой информации.


1
Глубоко внутри вашей ссылки PSOUG есть ссылка на подсказку DRIVING_SITE - производительность запросов к DBLINK может сильно различаться - если вы ЗНАЕТЕ, где будет выполняться большая часть обработки данных, обязательно установите DRIVING_SITE для базы данных, где данные обработка будет наиболее эффективной.
ScottCher


0

да, вы можете, вы можете читать данные из любой базы данных, используя dg4odbc. К любой базе данных, совместимой с odbc, можно подключиться и к базе данных Oracle, если вы сможете найти работающий драйвер odbc для нашей платформы. .odbc.ini и $ ORACLE_HOME / hs / admin - ваши местоположения конфигурации.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.