Использование гетерогенных сервисов Oracle для доступа к таблице базы данных sql server через ODBC - PullRequest
0 голосов
/ 10 августа 2011

Я создал dblink 'POC_HS' от оракула до sql (реализовал гетерогенные сервисы) и смог успешно извлечь данные из базы данных по умолчанию, к которой подключен DSN (для сервера sql).

Таким образом, этот «select * from Test @ POC_HS» прекрасно работает с базой данных Oracle, поскольку таблица «Test» находится в базе данных по умолчанию (к которой подключен системный DSN).

Но когда я это делаю 'выберите * Abc.Test@POC_HS ', где тестовая таблица находится в базе данных' ABC ', которая не является базой данных по умолчанию, и выдает ошибку следующим образом:

ORA-00942: таблица или представление не существует [Общее подключение с использованием ODBC] [Microsoft] [Драйвер ODBC SQL Server] [SQL Server] Недопустимое имя объекта «Abc.Test». [Microsoft] [Драйвер ODBC SQL Server] [SQL Server] Не удалось подготовить оператор (ы).(Состояние SQL: S0002; Код SQL: 208)

Пользователь dblink и системная учетная запись DSN имеют доступ к базе данных Abc.

Мысли?

Ответы [ 2 ]

0 голосов
/ 11 августа 2011

Ответ здесь - http://forums.oracle.com/forums/message.jspa?messageID=9794581

Драйвер ODBC Sql Server не позволяет выполнять запросы по всей базе данных, необходимо изменять базу данных по умолчанию odbc каждый раз, когда вы хотите запросить другую базу данных.

0 голосов
/ 10 августа 2011

Полный путь к объекту - Database.Schema.Object, поэтому я предполагаю, что вы должны написать что-то вроде этого:

select * 
from Abc.dbo.Test@POC_HS

Замените dbo тем, какое имя схемы, конечно, есть.

...