Возможно, вам удастся просто создать ссылку на базу данных и присоединиться к ней по этой ссылке, но это может привести к проблемам с производительностью. Что-то вроде этого:
Создайте ссылку на базу данных 2 в базе данных 1.
CREATE DATABASE LINK db2 CONNECT TO user IDENTIFIED BY pw USING tns-alias;
Присоедините свою таблицу в базе данных 1 к таблице в базе данных 2:
SELECT my_value
FROM table_in_database_1 t1 JOIN table_in_database_2@db2 t2
ON t1.my_value = t2.my_value
В зависимости от производительности ссылки вы можете использовать для этого гибридный подход, включающий как ссылку на базу данных, так и временную таблицу.
Создайте ссылку на базу данных, как указано выше. Создайте временную таблицу в базе данных 1, содержащую значения, которые будут использоваться в подзапросе из базы данных 2.
CREATE GLOBAL TEMPORARY TABLE db2_values (value VARCHAR2(20));
Скопируйте значения из db2 в db1:
INSERT INTO db2_values
SELECT my_value
FROM table_in_database_2@db2;
Наконец, присоедините таблицу базы данных 1 к временной таблице.
SELECT my_value
FROM table_in_database_1 t1 JOIN db2_values t2 ON t1.my_value = t2.value;
person
DCookie
schedule
21.07.2011