Связывание Oracle с SQL Server

Я пытаюсь связать SQL Server 2005 с базой данных Oracle 10g. Я установил клиент Oracle на сервере SQL и подтвердил, что могу подключиться к базе данных Oracle, используя tnsping и sqlplus. Когда я пытаюсь выполнить запрос в SQL Server, я получаю следующее:

Поставщик OLE DB «OraOLEDB.Oracle» для связанного сервера «ORA_CSSA2APD» вернул сообщение «ORA-12154: TNS: не удалось разрешить указанный идентификатор подключения».
Я установил клиент Oracle на сервере SQL и подтвердил, что я могу подключиться к базе данных Oracle, используя tnsping и sqlplus. Когда я пытаюсь выполнить запрос в SQL Server, я получаю следующее:

Поставщик OLE DB «OraOLEDB.Oracle» для связанного сервера «ORA_CSSA2APD» вернул сообщение «ORA-12154: TNS: не удалось разрешить указанный идентификатор подключения».
Я установил клиент Oracle на сервере SQL и подтвердил, что я могу подключиться к базе данных Oracle, используя tnsping и sqlplus. Когда я пытаюсь выполнить запрос в SQL Server, я получаю следующее:

Поставщик OLE DB «OraOLEDB.Oracle» для связанного сервера «ORA_CSSA2APD» вернул сообщение «ORA-12154: TNS: не удалось разрешить указанный идентификатор подключения».
Сообщение 7303, уровень 16, состояние 1, строка 1
Не удалось инициализировать объект источника данных поставщика OLE DB "OraOLEDB.Oracle" для связанного сервера "ORA_CSSA2APD".

Есть идеи? Я безуспешно пробовал оба следующих запроса:

select * from openquery (ORA_CSSA2APD, 'select count (rowid) from eservice_op.agent')

select count (rowid) из ORA_CSSA2APD..eservice_op.agent

8
задан APC 13 August 2010 в 14:00
поделиться

3 ответа

Я подозреваю, что это настройка среды. То есть ваш сеанс принимает файл TNSNAMES.ORA, а сеанс, лежащий в основе SQL Server, - нет. Я бы проверил, были ли ORACLE_HOME и, возможно, TNS_ADMIN установлены и указывают на.

Можете ли вы использовать синтаксис простого подключения для базы данных с подключением к SQL Server?

IE заменяет ORA_CSSA2APD на имя хоста: 1521 / имя_службы

5
ответ дан 5 December 2019 в 13:59
поделиться

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

Следует учитывать, используете ли вы 64-битную Windows и 32-битный или 64-битный клиент Oracle (или, возможно, оба). Если у вас есть 32-битное приложение, работающее в 64-битной ОС, которое пытается вызвать Oracle, ему нужен 32-битный клиент Oracle. Использование 32-битного клиента в 64-битной ОС может быть непростым делом, и безопаснее НЕ устанавливать его в папку «Program Files (x86)».

Также имейте в виду после

В 64-разрядной версии Windows Server 2003 или Windows XP, Папка% WinDir% \ System32 зарезервирована для 64-битных приложений. Когда 32-битный приложение пытается получить доступ к Папка System32, доступ перенаправлен в следующую папку: % WinDir% \ SysWOW64

Итак, для 64-битных окон 32-битный материал находится в папке SysWOW64, а 64-битный материал - в папке system32.

2
ответ дан 5 December 2019 в 13:59
поделиться

ORA: 12154 обычно означает, что псевдоним базы данных, к которой вы пытаетесь подключиться, не был найден в файле tnsnames.ora. (См. http://ora-12154.ora-code.com/ более подробное объяснение.)

Вам необходимо убедиться, что Источник данных - это псевдоним, о котором знает файл tnsnames ( на сервере, где находится SQL Server, независимо от того, откуда вы выполняете запросы); SQL Server будет таким же, как и любой другой клиент Oracle, и должен знать, где подключиться и без файла tnsnames.ora, он не будет знать подробностей о том, где находится база данных Oracle.

Если у вас нет доступа к серверу SQL Server (есть один из отдела избыточности), вам нужно попросить администратора сервера настроить его для вас.

(Свойство Data Source связанного сервера должно быть псевдонимом в tnsnames.ora псевдонима для базы данных, на которую вы пытаетесь установить ссылку.)

HTH ...

4
ответ дан 5 December 2019 в 13:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: