Я пытаюсь связать 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
Я подозреваю, что это настройка среды. То есть ваш сеанс принимает файл TNSNAMES.ORA, а сеанс, лежащий в основе SQL Server, - нет. Я бы проверил, были ли ORACLE_HOME и, возможно, TNS_ADMIN установлены и указывают на.
Можете ли вы использовать синтаксис простого подключения для базы данных с подключением к SQL Server?
IE заменяет ORA_CSSA2APD на имя хоста: 1521 / имя_службы
Сообщения об ошибках 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.
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 ...