Вы можете сделать это со связанными серверами или перенести все данные в одну сторону. Все будет зависеть от объема данных с каждой стороны.
Общее правило заключается в выполнении запроса на стороне, которая имеет наибольшее количество данных.
Например, если набор идентификаторов Oracle небольшой, но набор SQL Server большой, вы создаете связанный сервер на стороне Oracle и выполняете его на стороне SQL Server:
SELECT *
FROM sqlservertable
INNER JOIN linkedserver.oracletable
ON whatever
В этом случае, если сторона Oracle является большой (или не может быть предварительно отфильтрована до необходимости присоединиться к стороне SQL Server), производительность, как правило, будет довольно низкой - и значительно улучшится, потянув всю таблицу (или минимальное подмножество, которое вы можете определить) в таблицу SQL Server вместо этого и выполнить JOIN все на стороне SQL Server.