ORA-00942: таблица или представление не существуют при выборе чего-либо из таблицы из гетерогенной службы

Мне нужно выбрать данные таблицы в базе данных Oracle из таблицы, доступной в базе данных SQL Server. Поэтому я создал ссылку базы данных на эту базу данных Oracle, как описано в http://www.dba-oracle.com/t_database_link_sql_server_oracle.htm.

Ссылка на базу данных работает правильно, так как я могу показать все таблицы из этой ссылки на базу данных с помощью команды:

select * 
from all_tables@mssql_link

Например, я получаю таблицу с «adr» в качестве имени таблицы и «dbo» в качестве владельца.

Итак, если я попытаюсь выбрать все из этой таблицы через

select * from dbo.adr@mssql_link 

или через

select * from "dbo"."adr"@mssql_link 

or

select * from adr@mssql_link 

Я всегда получаю исключение Oracle:

ORA-00942: таблица или представление не существуют
[Microsoft][Драйвер ODBC SQL Server][SQL Server]Недопустимое имя объекта 'DBO.ADR'. {42S02,NativeErr = 208}[Microsoft][Драйвер ODBC SQL Server][SQL Server]Не удалось подготовить отчеты. {42000,NativeErr = 8180}
ORA-02063: предыдущие 2 строки из MSSQL_LINK

Я создал ссылку на базу данных, создав общедоступную ссылку на базу данных mssql_link, подключившись к «[dbUser]», идентифицированному «[PASSWORD]», используя «mssql01»;

Кто-нибудь знает, что там происходит?


person d_S97    schedule 11.04.2017    source источник
comment
Я не знаю о SQLServer, но если бы это произошло с базой данных Oracle, у вашего пользователя не было бы доступа к рассматриваемой таблице. Ваша ссылка настроена на подключение от имени определенного пользователя. Имеет ли этот пользователь соответствующий доступ к рассматриваемой таблице.   -  person unleashed    schedule 11.04.2017


Ответы (1)


Попробуйте функцию openquery, например:

select * from openquery(mssql_link, 'Select * from adr')
person Chuck    schedule 11.04.2017
comment
К сожалению, при выполнении этой команды я получаю исключение SQL-команды ORA-00933 с некорректным завершением. - person d_S97; 12.04.2017
comment
То, что в кавычках, именно то, что у вас было бы в Oracle. - person Chuck; 17.04.2017