26.04.2008 г.
Oracle позволяет связывать различные базы данных между собой. Это возможно даже если базы данных расположены на разных серверах. Не забывайте, что обращение к удалённому серверу будет производиться в момент выполнения запроса, а это, при наличии медленных каналов связи между серверами, может серьёзно замедлить работу запроса.
Создаём линк (link) на другую базу:
create public database link mylink connect to user identified by password using 'db01';
Где:
mylink - имя линка, которое мы хотим использовать;
user - пользователь, под которым можно осуществить соединение с внешней базой данных;
password - пароль этого пользователя;
'db01' - строка подключения, которая должна быть обязательно(!) в одинарных кавычках. Так же обязательно присутствие этой строки в tnsnames.ora.
Создаём синоним (synonym):
create public synonym rtable for user.ltable@mylink;
Где:
rtable - локальное имя для таблицы на удалённом сервере;
user - схема на удалённом сервере, которая содержит таблицу ltable;
ltable - таблица на удалённом сервере;
mylink - имя линка, созданного на предыдущем шаге
После выполнения предыдущих шагов, можно выполнить запрос из таблицы, расположенной в удалённой базе данных, так:
select * from rtable;