Связанный сервер не получает строки из БД Oracle - PullRequest
1 голос
/ 17 июня 2011

Мы используем SQL Server 2008 R2 Standard и связанные серверы для получения информации из других баз данных Oracle.Поставщик для наших связанных серверов - поставщик Oracle для OLE DB.

У меня есть этот запрос, который я пытаюсь запустить в SQL Server.

 select * from [HPROD]..[GTBUD].GT_BUD_COA_VW

Используя Oracle SQL Developer, я вижу, чтов таблице 44 859 записей.Есть идеи, почему я не могу получить данные?Следует отметить, что связанный сервер HPROD, с которым у меня возникают проблемы, работает под управлением Oracle 11g 64-bit 11.2.0.1.0 Production.Наш SQL Server работает на сервере Server 2008 R2 64.

Интересно, что у нас есть еще один связанный сервер IRPROD, использующий того же поставщика, что и HPROD.IRPROD использует точно такую ​​же версию Oracle, но у нас нет проблем с ней.Все отлично работает.

Кроме того, если я попытаюсь использовать OpenQuery, HPROD все равно не будет показывать никаких строк.

 select * from Openquery(HPROD,'select * from GTBUD.GT_BUD_COA_VW')

Я в растерянности.Мы должны быть в состоянии ударить эти таблицы.

Ответы [ 3 ]

1 голос
/ 18 июня 2011

Убедитесь, что связанный сервер указывает на ожидаемую базу данных (и имя пользователя / схему входа в систему).

На стороне Oracle вы можете проверить v $ session, чтобы убедиться, что у вас есть соединение изУзел SQL Server и v $ sql, чтобы увидеть, какой запрос был выполнен, сколько выборок было сделано и сколько строк возвращено.

0 голосов
/ 21 июня 2011

Я работал с моим коллегой, который фактически создал представление.

В представлении были объединения и предложения where. Он использовал такой синтаксис:

 AND b.end_dt = '30-JUN-2012'

Когда он изменил формат, чтобы использовать функцию todate, это сработало.

 AND b.end_dt = TO_DATE('06/30/2012','MM/DD/YYYY')

Теперь старый способ прекрасно работал в Oracle, он срабатывал только при прохождении через связанный сервер в SQL Server.

Теперь мы знаем.

0 голосов
/ 18 июня 2011

Попробуйте указать имя схемы.

select * from
[linkedServerName].[DatabaseName].[SchemaName].[TableName]
...