Соединение между таблицей sqlsever и таблицей оракула - PullRequest
0 голосов
/ 22 сентября 2011

Я использую SQL Server 2008 в течение короткого времени и никогда раньше не использовал Oracle. Я могу получить доступ к таблице Oracle через SQL Server с синтаксисом

select * from [OracleDB1]..[OracleDB1].[Zips]  

(где OracleDB1 - база данных Oracle, а Zips - таблица, которая мне нужна)

Возможно ли объединить таблицу SQL Server с этой в табличной функции? Простое использование обычного соединения, как в случае таблиц SQL Server, приводит к ошибке Неверное имя объекта в таблице Oracle.

Можно ли это сделать напрямую (или вообще) или это можно сделать каким-либо другим способом, например, табличными переменными?

пример запроса:

select * from dbo.Table1 t INNER JOIN [OracleDB1]..[OracleDB1].[Zips] z where t.zip = z.zip

1 Ответ

1 голос
/ 22 сентября 2011

Я выполнял объединение неправильно, так как пропустил предложение ON.Я смог заставить его работать, объявив соблазнительным и присоединившись к этому.

declare @tempTable table{
    ZIP nvarchar(5),
    COUNTY nvarchar(10)
}
insert @tempTable select ZIP, COUNTY, from [OracleDB1]..[OracleDB1].[ZIPS]
select * from dbo.Table1 t INNER JOIN @tempTable z on t.ZIP = v.ZIP where t.AdmissionOn >= '08-08-2011' AND t.AdmissionOn <= ''09-08-2011'

Это также работало в соответствии с тем, что было в исходном вопросе, как только я добавил предложение ON, но переменная таблицы лучше удовлетворяет моим потребностям, поскольку она должна обращаться к таблице Oracle только один раз, а не к каждому сравнению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...