Клиент oracle не найден

Обновлено: 06.07.2024

В этой статье описывается настройка связанного сервера с компьютера, на Microsoft SQL Server запущенного в базу данных Oracle, а также основные действия по устранению ошибок, которые могут возникнуть при настройках связанного сервера с базой данных Oracle.

Оригинальная версия продукта: Microsoft SQL Server 2005 выпуск Standard, Microsoft SQL Server 2005, Microsoft SQL Server 2005 выпуск Enterprise, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 workgroup Edition
Исходный номер КБ: 280106

Сводка

В этой статье описывается настройка связанного сервера с компьютера, который работает Microsoft SQL Server в базу данных Oracle, и основные действия по устранению неполадок, которые могут возникнуть при настройках связанного сервера с Oracle. Большая часть сведений в этой статье применима к средам, настроенным для использования поставщика OLEDB Microsoft для Oracle (MSDAORA). Избегайте использования этой функции в новых разработках и планируйте изменять приложения, использующие эту функцию в настоящее время. Вместо этого используйте поставщика OLE DB Oracle.

Дополнительные сведения о настройке связанного сервера с помощью olEDB-поставщика Oracle в обзоре How to get up and running with Oracle and Linked Servers.

Текущая версия драйвера Microsoft ODBC для Oracle соответствует спецификации ODBC 2.5, в то время как поставщик OLE DB для Oracle является родным поставщиком API OCI Oracle 7. Драйвер и поставщик используют клиент SQL*Net (или Net8 для Oracle 8x) и библиотеку интерфейса вызовов Oracle и другие клиентские компоненты Oracle для подключения к базам данных Oracle и получения данных. Клиентские компоненты Oracle важны и должны быть правильно настроены для успешного подключения к базам данных Oracle с помощью драйвера и поставщика.

Из microsoft Data Access Components (MDAC) версии 2.5 и более поздних версий драйвер Microsoft ODBC и поставщик OLE DB поддерживают только Oracle 7 и Oracle 8i с следующими ограничениями:

Типы данных для Oracle 8.x, такие как CLOB, BLOB, BFILE, NCHAR, NCLOB и NVARCHAR2, не поддерживаются.

Функция Unicode на серверах Oracle 7.x и 8.x не поддерживается.

Несколько экземпляров клиентов Oracle или несколько домов Oracle не поддерживаются, поскольку они зависят от первого появления дома Oracle в переменной SYSTEM PATH.

Возвращение нескольких результатов из сохраненной процедуры или пакета SQL не поддерживается с помощью ADO или OLEDB.

Вложенные внешние соединители не поддерживаются.

Сохранение XML не поддерживается.

Версия с более чем 8i не поддерживается с помощью этих драйверов.

Сторонние продукты, которые обсуждаются в этой статье, производятся компаниями, независимыми от Microsoft. Корпорация Майкрософт не дает никаких явных, подразумеваемых и прочих гарантий относительно производительности или надежности этих продуктов.

Действия по настройкам связанного сервера с Oracle

Необходимо установить клиентскую программу Oracle на компьютере, SQL Server на котором установлен связанный сервер.

Установите нужный драйвер на компьютере с SQL Server. Microsoft поддерживает только драйвер поставщик OLE DB для Oracle (Майкрософт) Microsoft ODBC для Oracle. Если вы используете стороннего поставщика или стороннего драйвера для подключения к Oracle, необходимо связаться с соответствующим поставщиком для любых проблем, которые могут возникнуть с помощью поставщика или драйвера.

Если вы используете драйвер поставщик OLE DB для Oracle (Майкрософт) и Microsoft ODBC для Oracle, рассмотрите следующие вопросы:

Как поставщик OLE DB, так и драйвер ODBC, включенный в компоненты доступа к данным Майкрософт (MDAC), требуют SQL*Net 2.3.x или более поздней версии. Необходимо установить клиентское программное обеспечение Oracle 7.3.x или более поздний вариант на клиентский компьютер. Клиентский компьютер — это компьютер, на который SQL Server.

Убедитесь, что на компьютере с SQL Server установленА версия MDAC 2.5 или более поздней версии. С помощью MDAC 2.1 или более ранней версии невозможно подключиться к базам данных, в которые используется Oracle 8. x или более поздней версии.

Чтобы включить MDAC 2.5 или более поздние версии для работы с клиентской программой Oracle, реестр необходимо изменить на клиентном компьютере, который работает SQL Server, как указано в следующей таблице.

Перезапустите компьютер, который SQL Server после установки клиентского программного обеспечения Oracle.

На компьютере, который SQL Server, установите связанный сервер с помощью следующего сценария.

Если для Oracle используется драйвер Microsoft ODBC, параметр можно указать @datasrc имя DSN. Для подключения без DSN строка поставщика поставляется через @provstr параметр. С поставщик OLE DB для Oracle (Майкрософт) используйте псевдоним сервера Oracle, настроенный в файле TNSNames.Ora для @datasrc параметра. Дополнительные сведения см. в разделе "sp_addlinkedserver" в SQL Server Books Online.

В этот раздел, описание метода или задачи включены действия, содержащие указания по изменению параметров реестра. Однако неправильное изменение параметров реестра может привести к возникновению серьезных проблем. Поэтому следует в точности выполнять приведенные инструкции. Для дополнительной защиты создайте резервную копию реестра, прежде чем редактировать его. Так вы сможете восстановить реестр, если возникнет проблема. Дополнительные сведения о том, как создать и восстановить реестр, щелкните следующий номер статьи, чтобы просмотреть статью в базе знаний Майкрософт: 322756 Как создать и восстановить реестр в Windows

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

Подключение SQL Server использовать SQL Server Management Studio и запустить следующий код, чтобы включить флаг трассировки 7300.

Интерфейс::Метод не справился с кодом hex-error.

Код hex-error можно найти в файле Oledberr.h, который включен в набор разработки программного обеспечения MDAC (SDK).

Ошибка 7399. Поставщик OLE DB "%ls" для связанного сервера "%ls" сообщил об ошибке. %ls

Включай флаг трассировки 7300 или SQL profiler для захвата события ошибок OLEDB для получения расширенных сведений об ошибках OLEDB.

"ORA-12154: TNS:не удалось разрешить имя службы"

"Клиентские и сетевые компоненты Oracle (tm) не найдены. Эти компоненты поставляются корпорацией Oracle и являются частью установки клиентского программного обеспечения Oracle Version 7.3.3 (или больше) ".

Эти ошибки возникают при проблеме подключения к серверу Oracle. Просмотрите методы устранения неполадок с подключением в разделе Сервер Oracle ниже для дополнительных устранений неполадок.

Ошибка 7302. Не удается создать экземпляр поставщика OLE DB "MSDAORA" для связанного сервера "%ls".

Если вы используете стороннего поставщика Oracle, а поставщик Oracle не может работать вне процесса SQL Server, в результате изменения параметров поставщика включить его в процессе. Чтобы изменить параметры поставщика, используйте один из следующих методов.

Метод 1 Найдите следующий ключ реестра. Затем измените значение записи AllowInProcess (DWORD) на 1. Этот ключ реестра расположен под соответствующим именем поставщика: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\ProviderName .

Ошибка 7312. Недопустимое использование схемы и/или каталога для поставщика OLE DB "%ls" для связанного сервера "%ls". Было предоставлено имя из четырех части, но поставщик не предоставляет необходимые интерфейсы для использования каталога и/или схемы.

Ошибка 7313. Для поставщика "%ls" для связанного сервера была указана недействительный схема или каталог.

Ошибка 7314. Поставщик OLE DB "%ls" для связанного сервера "%ls" не содержит таблицу "%ls". Таблица либо не существует, либо у текущего пользователя нет разрешений на эту таблицу.

На стороне Oracle в верхнем шкафу хранится таблица или столбец, созданный без двойных кавычках. Если таблица или столбец заключены в двойные кавычка, таблица или столбец хранятся как есть.

В следующем вызове показано, существует ли таблица в схеме Oracle. В этом вызове также указывается точное имя таблицы.

Ошибка 7413. Не удалось подключиться к связанному серверу "%ls" (OLE DB Provider '%ls'). Включить делегирования или использовать удаленный SQL Server для текущего пользователя. Msg 18456, Level 14, State 1, Line 1 Login failed for user ' ' .

Ошибка 7391. Операция не может быть выполнена, так как поставщик OLE DB "MSDAORA" для связанного сервера "%ls" не смог начать распределенную транзакцию. След ошибки OLE DB [OLE/DB Provider 'MSDAORA' ITransactionJoin::JoinTransaction returned 0x8004d01b]

Если все записи реестра верны, MtxOCI.dll файл загружается. Если файл MtxOCI.dll не загружен, нельзя выполнять распределенные транзакции с Oracle с помощью поставщик OLE DB для Oracle (Майкрософт) или с помощью драйвера Microsoft ODBC для Oracle. Если вы используете сторонного поставщика и получаете ошибку 7391, убедитесь, что поставщик OLE DB, который вы используете, поддерживает распределенные транзакции. Если поставщик OLE DB поддерживает распределенные транзакции, убедитесь, что координатор распределенных транзакций Майкрософт (MSDTC) запущен и имеет доступ к сети.

Ошибка 7392. Невозможно запустить транзакцию для поставщика OLE DB "MSDAORA" для связанного сервера "%ls". Трассировка ошибки OLE DB [OLE/DB Provider 'MSDAORA' ITransactionLocal::StartTransaction возвращена 0x8004d013: ISOLEVEL=4096].

Поставщик OLE DB вернул ошибку 7392, так как для этого сеанса может быть активна только одна транзакция. Эта ошибка указывает на то, что при явной или неявной транзакции поставщик OLE DB пытается сделать заявление об изменении данных, а поставщик OLE DB не поддерживает вложенные транзакции. SQL Server требуется эта поддержка, чтобы при определенных условиях ошибки можно было прекратить действие заявления об изменении данных при продолжении транзакции.

Если он on, SQL Server не требует вложенной поддержки транзакций SET XACT_ABORT от поставщика OLE DB. Поэтому выполните перед выполнением заявлений об изменении данных в удаленных таблицах в SET XACT_ABORT ON неявной или явной транзакции. Делайте это в том случае, если поставщик OLE DB, который вы используете, не поддерживает вложенные транзакции.

Методы устранения неполадок с подключением к серверу Oracle

Чтобы отлукать проблемы с подключением Oracle с драйвером Microsoft ODBC для Oracle или поставщик OLE DB для Oracle (Майкрософт), выполните следующие действия:

Используйте утилиту Oracle SQL Plus (утилиту запросов на основе командной строки) для проверки возможности подключения к Oracle и получения данных.

Если вы не можете подключиться к Oracle и получить данные, у вас либо плохая установка или конфигурация компонентов клиента Oracle, либо вы неправильно создали псевдоним службы прозрачной сети (TNS) для сервера Oracle, когда вы использовали SQL*Net Easy Configuration или Oracle Net8 Easy Configuration utility. Обратитесь к администратору базы данных Oracle (DBA), чтобы убедиться, что компоненты Oracle, которые должны быть правильно установлены и настроены.

Проверьте версию клиента Oracle (SQL чистая версия), установленного * на компьютере. Для драйвера Microsoft ODBC для Oracle поставщик OLE DB для Oracle (Майкрософт) требуется установка SQL*Net версии 2.3 или более поздней версии на клиентский компьютер.

Подключение из SQL Плюс (средство клиентского запроса Oracle) может появиться, но необходимо перезапустить компьютер, чтобы подключение ODBC/OLE DB функционировало правильно.

При использовании Oracle 8i файл .rgs пуст.

Если клиент Oracle установлен, и вы получите ошибку, которая указывает на то, что компоненты клиента Oracle 7.3 или более поздней части должны быть установлены на компьютере, убедитесь, что экологическая переменная PATH на клиентский компьютер содержит папку, в которой был установлен клиент Oracle, например, Oracle_Root\Bin. Если вы не можете найти эту папку, добавьте папку в переменную PATH, чтобы устранить ошибку.

Убедитесь, что Ociw32.dll находится в папке Oracle_Root\bin. Этот .dll не может существовать в любом другом расположении на клиентский компьютер. Убедитесь, что DLLs клиентского компонента Oracle (например, файл Core40.dll и файл ora.dll) не существуют вне Oracle_Root папки или * подмостков.

Убедитесь, что на компьютере установлена одна клиентская версия Oracle. Несколько версий SQL*Net не могут существовать на одном клиентском компьютере с помехами и критическими операциями (например, TNS и alias lookups).

Корпорация Майкрософт рекомендует установить локальный клиент Oracle, а не делать это путем сопоставления удаленного клиента Oracle на компьютере, а затем включить его в путь системы для подключения к Oracle через ODBC/OLE DB. Но поставщик и драйвер проверяются с локально установленным клиентом Oracle, а не на сетевой совместной основе.

При запуске и входе в «Форсайт. Аналитическая платформа» в отдельных случаях могут возникать следующие ошибки.

Проблемы при запуске

Нарушение целостности файлов: <имя файлов>.

Эта проблема может возникнуть, если исполняемые файлы или библиотеки отсутствуют, или не соответствуют эталону.

При возникновении данной ситуации следует обратиться к администратору.

произошли ошибки в процессе установки Framework.

Ниже перечислены варианты решения данной проблемы. Если вариант решения не помогает, перейдите к следующему варианту.

В настройках «Форсайт. Аналитическая платформа» указана необходимость автоматического обновления версий.
Обновление версии невозможно, так как выполнение <'С:\Program Files\Foresight\Analytics Platform 9.x\Studio.exe'> завершилось с ошибкой с кодом -1073741515.

Studio.exe - Ошибка приложения.
Ошибка при инициализации приложения (0xc0000135). Для выхода из приложения нажмите кнопку "ОК".

Эта проблема может возникнуть, если на рабочей станции отсутствуют необходимые пререквизиты.

Запуск программы невозможен, так как на компьютере отсутствует api-ms-win-crt-runtime-l1-1-0.dll. Попробуйте переустановить программу.

Эта проблема может возникнуть, если на рабочей станции удалён или некорректно установлен пререквизит Microsoft Visual C++ 2015 Redistributable Package.

Для установки Microsoft Visual C++ 2015 Redistributable Package на Windows 8.1 или Windows Server 2012 R2 требуются обновления KB2975061 и KB2919355.

Проблемы при входе

Версия репозитория выше/ниже версии «Форсайт. Аналитическая платформа».

Эта проблема может возникнуть, если версия репозитория не соответствует версии платформы.

При возникновении данной ситуации следует обратиться к администратору.

Ошибка при подключении к базе данных. Клиент <Oracle 11.x\12.x> не найден.

клиентская часть СУБД Oracle не установлена;

несовпадение разрядностей «Форсайт. Аналитическая платформа» и клиентской части СУБД Oracle.

Проверьте, установлена ли клиентская часть СУБД Oracle и совпадает ли её разрядность с разрядностью «Форсайт. Аналитическая платформа».

Ошибка при вызове функции Oracle.
ORA-06413: Connection not open.
Класс ошибки: EExternal
Источник: Som\SomPackStd.cpp, строка 2297.

Эта проблема может возникнуть, если используется СУБД Oracle до версии 10.2.0.3 и в пути установки «Форсайт. Аналитическая платформа» имеются круглые скобки. Эта особенность СУБД Oracle была исправлена в версии 10.2.0.3.

Примеры пути установки «Форсайт. Аналитическая платформа»:

  • Если была установка 32х-разрядным инсталлятором на 32х-разрядную ОС Windows: C:\Program Files\Foresight\;
  • Если была установка 32х-разрядным инсталлятором на 64х-разрядную ОС Windows: C:\Program Files (x86)\Foresight\;
  • Если была установка 64х-разрядным инсталлятором на 64х-разрядную ОС Windows: C;\Program Files\Foresight\.

Переустановите «Форсайт. Аналитическая платформа» в папку, путь до которой не содержит круглых скобок.

Обновите клиент СУБД Oracle до версии 10.2.0.3 или выше.

Обратитесь к документации по СУБД и установите обновление 5059238.

При подключении к репозиторию может возникнуть ошибка:

Ошибка загрузки библиотеки функций PostgreSQL. Возможно, драйвер не установлен.

Отсутствует установленный драйвер PostgreSQL или разрядность драйвера отличается от разрядности «Форсайт. Аналитическая платформа». Также ошибка может проявляться, если на компьютере пользователя отсутствует пакет Microsoft Visual C++ Runtime Library даже при корректно установленном драйвере СУБД.

Также рекомендуется в системную переменную PATH добавить путь к папке, в которую установлены драйвера для СУБД PostgreSQL.

При подключении к репозиторию на базе СУБД Oracle через BI-сервер может возникнуть ошибка:

Connection to database failed. Oracle 11.x/12.x is not found.

Веб-сервер IIS взаимодействует с клиентом Oracle под пользователями Network Service и IUSR, а не под тем пользователем, который обращается к веб-серверу. В доступе к клиенту Oracle может быть отказано, если у пользователей Network Service и IUSR нет соответствующих прав доступа.

Для решения проблемы необходимо предоставить права на доступ к папке с клиентом Oracle пользователям Network Service и IUSR.

При подключении к репозиторию возникает ошибка сервера, при этом в логе имеется ошибка о невозможности создать файлы кэша: The system cannot find the path specified.

На запрос о подключении возвращается ответ:

При работе в CentOS 7 по умолчанию стоит низкий лимит одновременно открытых файлов.

После этого перезагрузите сервис, выполнив команду:

Проблемы при проверке пользователя

Неверное имя пользователя/пароль.

Поле Имя пользователя пустое/Не задан пароль.

При авторизации имя пользователя или пароль не были указаны или были указаны неверно.

Повторите ввод имени и пароля в окне регистрации.

Политикой безопасности предписано изменить пароль.

Пользователь обязан сменить пароль.

Эта проблема может возникнуть, если заданный в редакторе политик максимальный срок действия пароля истек.

Необходимо сменить пароль. Для этого в окне с уведомлением о необходимости смены пароля введите пароль и нажмите кнопку « Да ».

Если новый пароль не удовлетворяет каким-либо требованиям парольной политики, то ниже полей ввода будет отображена соответствующая информация. Задайте пароль в соответствии с правилами. После смены пароля сеанс работы с веб-приложением будет завершен. Для входа в систему откройте новое окно обозревателя.

Пользователь '<Пользователь>' заблокирован.

исчерпан лимит ошибок при вводе пароля;

пользователь заблокирован администратором.

При возникновении данной ситуации следует обратиться к администратору.

Пользователю отказано в доступе:

с данной рабочей станции;

со станции с определенным IP-адресом;

со станции с определенным MAC-адресом;

в этот день недели;

При возникновении данной ситуации следует обратиться к администратору.

Пользователь <имя пользователя> не имеет прав доступа к навигатору объектов.

При возникновении данной ситуации следует обратиться к администратору.

Доступ запрещен.
Обратитесь к администратору.

Эта проблема может возникнуть, если некорректно настроены параметры конфигурационного файла SQLNET.ORA. Файл расположен по пути S\network\admin\, где S - путь до места установки Oracle.

Для корректной парольной авторизации в конфигурационном файле SQLNET.ORA замените SQLNET.AUTHENTICATION_SERVICES = (NTS) на SQLNET.AUTHENTICATION_SERVICES = (NONE).

После установки веб-приложения, при попытке пройти процедуру авторизации система выдает ошибку о ненайденных сервисах (ServiceNotFound).

Адрес, по которому будет производиться обращение к веб-сервисам, задается в базовых настройках веб-приложения в файле PP.xml. Адрес к сервисам – регистрозависимый, поэтому при несоблюдении регистра в написании адреса, возникает ошибка о ненайденных сервисах.

Путь, по которому расположены данные файлы, зависит от типа используемого веб-сервера:

где S - путь, по которому установлено веб-приложение.

Открыв на редактирование файл PP.xml , необходимо проверить корректность адреса к веб-сервисам с учетом регистра в строке « service url="S1" /> ». Где S1 – путь, по которому располагается BI-сервер.

Пути, используемые по умолчанию, при использовании сервера IIS:

Где <BI-сервер> - наименование или IP-адрес сервера, на котором функционирует BI-сервер.

При использовании сервера Apache путь, по которому располагается BI-сервер, настраивается через файл конфигурации.

После сохранения изменений следует открыть веб-приложение и повторно пройти процедуру авторизации.

После установки веб-приложения, при попытке пройти процедуру авторизации система выдает ошибку о неверном идентификаторе репозитория.

Закройте окно браузера и запустите настольное приложение «Форсайт. Аналитическая платформа» с правами Администратора на сервере с установленными веб-сервисами.

В открывшемся окне приветствия нажмите на кнопку « Настройка ». Из списка доступных репозиториев выберите тот, который используется при попытке авторизации в веб-приложении, и нажмите на кнопку « Редактировать ».

В открывшемся окне установите флажок « Для всех пользователей на компьютере », чтобы репозиторий стал доступным для всех пользователей и веб-сервисы могли взаимодействовать с репозиторием «Форсайт. Аналитическая платформа».

После сохранения изменений следует перезапустить веб-сервер, на котором установлены веб-сервисы, открыть веб-приложение и повторно пройти процедуру авторизации.

Во время создания или обновления пользователя возникает ошибка «При раздаче прав на объекты СУБД произошла ошибка. Обновите пользователей».

За время работы с Oracle Database и Microsoft SQL Server Integration Services я собрал 2 FAQ-а. Первый — по Oracle Client — я публикую здесь, а второй — по коннекторам SSIS к Oracle, следующим постом.

Что такое Oracle Client?

Это промежуточное ПО, предназначенное для доступа к Oracle Database. Некоторые приложения имеют встроенного клиента. Встраиваемый клиент, предназначенный для разработчиков, называется Instant Client.

Откуда скачать Oracle Client?

Если Вы возьмете клиента от более старшей версии это будет плюсом, поскольку не придется его обновлять на работающей системе, когда потребуется соединяться со следующей СУБД Oracle.

Не перепутайте Oracle Client и Oracle Instant Client, предназначенный для разработчиков. Так же, не качайте Data Access Components, поскольку DAC, помимо Oracle Client, содержит много средств, нужных только для разработки приложений.

Установка клиента Oracle 12c 32-bit не проходит после установки Oracle 12c 64-bit клиента (или наоборот)

Если Вы только что установили одного из клиентов Oracle 12c и не перезагружались, перезагрузитесь.

Программа установки Oracle Client, называемая Oracle Universal Installer, создает службу OracleRemExecService, которая согласно неофициальному описанию нужна только для OUI и должна исчезнуть после перезагрузки. В реальности она не исчезает, но и не запускается при старте ПК. Является ли правильным остановить службу, я не знаю, но это тоже помогает.

Как настроить подключение к СУБД Oracle в приложении, использующем Oracle Client?

Со стороны прикладного программного обеспечения, работающего через Oracle Client, для указания БД может быть использовано имя сервиса TNS или строка конфигурации, содержащая часть объявления имени сервиса TNS.

В первом случае в папке Oracle Client в "\network\admin\tnsnames.ora" укажите:

При этом, в приложениях в поле TNS Service Name указывается имя подключения.

Следует иметь ввиду, что в приложении, запускаемом в 32-х битной среде, используется Oracle Client 32-bit, а в 64-х битной среде используется Oracle Client 64-bit, поэтому может потребоваться сделать "tnsnames.ora" в обоих клиентах.

Что такое SERVICE_NAME и SID?

Подключение к базе данных по сети со стороны сервера обслуживает промежуточное ПО, называемое Listener.

SID это уникальный идентификатор базы данных Oracle на машине, а SERVICE_NAME, это идентификатор базы данных, заданный в Listener. Таким образом, одна и та же база данных, может быть доступна под разными SERVICE_NAME, но только под одним SID. Вас, поскольку Вы находитесь снаружи Listener-а, волнует SERVICE_NAME.

Как адресовать таблицы в Oracle?

По-умолчанию пользователь Oracle обращается к таблицам в своей схеме. Для того, что бы запрос обращался к одним и тем же таблицам из под любого пользователя, нужно указывать имя схемы перед точкой. Например, BM9.BM_CUSTOMER_CONTACT адресует таблицу BM_CUSTOMER_CONTACT в схеме BM9.

Что такое схема и база данных в Oracle?

База данных в СУБД Oracle = отдельный набор процессов СУБД с общей памятью.

Схема содержится внутри базы данных и является контейнером для таблиц. Кроме того, схема = пользователь.

Таблицы с одинаковыми именами могут существовать одновременно в разных схемах.

Почему не удается определить OCI environment (например, в Attunity)?

Приложение использующее Oracle Client должно каким-то образом его найти. Путь установки Oracle Client добавляется в %PATH% Oracle Installer-ом при установке. Но следует иметь ввиду, что переменные окружения устанавливаются процессу при запуске и, к примеру, Visual Studio (BIDS, Data Tools) запущенная до установки клиента, требует перезапуска, что бы начать использовать новый %PATH%.

Эта ошибка может быть по разному сформулирована в других приложениях.

Как настроить символьную кодировку Oracle Client?

Неверно настроенная кодировка может влиять как на получаемые данные, так и на выполнение запросов. Это может проявляться в том, что REPLACE(table_column, 'А', 'Б') в одном инструменте работает, а в другом нет, потому, что литералы ‘А’ и ‘Б’, поступающие в БД, воспринимаются иначе в одном из инструментов.

Для 32-х разрядного клиента в реестре в [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE] установите параметр "NLS_LANG"="RUSSIAN_CIS.CL8MSWIN1251" (типа REG_SZ).

Для 64-х разрядного клиента в реестре в [HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE], аналогично, установите параметр "NLS_LANG"="RUSSIAN_CIS.CL8MSWIN1251" (типа REG_SZ).

После настройки кодировки необходимо перезагрузиться, поскольку, уже запущенный Oracle Client её не перечитает.

В этой статье описывается настройка связанного сервера с компьютера, на Microsoft SQL Server запущенного в базу данных Oracle, а также основные действия по устранению ошибок, которые могут возникнуть при настройках связанного сервера с базой данных Oracle.

Оригинальная версия продукта: Microsoft SQL Server 2005 выпуск Standard, Microsoft SQL Server 2005, Microsoft SQL Server 2005 выпуск Enterprise, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 workgroup Edition
Исходный номер КБ: 280106

Сводка

В этой статье описывается настройка связанного сервера с компьютера, который работает Microsoft SQL Server в базу данных Oracle, и основные действия по устранению неполадок, которые могут возникнуть при настройках связанного сервера с Oracle. Большая часть сведений в этой статье применима к средам, настроенным для использования поставщика OLEDB Microsoft для Oracle (MSDAORA). Избегайте использования этой функции в новых разработках и планируйте изменять приложения, использующие эту функцию в настоящее время. Вместо этого используйте поставщика OLE DB Oracle.

Дополнительные сведения о настройке связанного сервера с помощью olEDB-поставщика Oracle в обзоре How to get up and running with Oracle and Linked Servers.

Текущая версия драйвера Microsoft ODBC для Oracle соответствует спецификации ODBC 2.5, в то время как поставщик OLE DB для Oracle является родным поставщиком API OCI Oracle 7. Драйвер и поставщик используют клиент SQL*Net (или Net8 для Oracle 8x) и библиотеку интерфейса вызовов Oracle и другие клиентские компоненты Oracle для подключения к базам данных Oracle и получения данных. Клиентские компоненты Oracle важны и должны быть правильно настроены для успешного подключения к базам данных Oracle с помощью драйвера и поставщика.

Из microsoft Data Access Components (MDAC) версии 2.5 и более поздних версий драйвер Microsoft ODBC и поставщик OLE DB поддерживают только Oracle 7 и Oracle 8i с следующими ограничениями:

Типы данных для Oracle 8.x, такие как CLOB, BLOB, BFILE, NCHAR, NCLOB и NVARCHAR2, не поддерживаются.

Функция Unicode на серверах Oracle 7.x и 8.x не поддерживается.

Несколько экземпляров клиентов Oracle или несколько домов Oracle не поддерживаются, поскольку они зависят от первого появления дома Oracle в переменной SYSTEM PATH.

Возвращение нескольких результатов из сохраненной процедуры или пакета SQL не поддерживается с помощью ADO или OLEDB.

Вложенные внешние соединители не поддерживаются.

Сохранение XML не поддерживается.

Версия с более чем 8i не поддерживается с помощью этих драйверов.

Сторонние продукты, которые обсуждаются в этой статье, производятся компаниями, независимыми от Microsoft. Корпорация Майкрософт не дает никаких явных, подразумеваемых и прочих гарантий относительно производительности или надежности этих продуктов.

Действия по настройкам связанного сервера с Oracle

Необходимо установить клиентскую программу Oracle на компьютере, SQL Server на котором установлен связанный сервер.

Установите нужный драйвер на компьютере с SQL Server. Microsoft поддерживает только драйвер поставщик OLE DB для Oracle (Майкрософт) Microsoft ODBC для Oracle. Если вы используете стороннего поставщика или стороннего драйвера для подключения к Oracle, необходимо связаться с соответствующим поставщиком для любых проблем, которые могут возникнуть с помощью поставщика или драйвера.

Если вы используете драйвер поставщик OLE DB для Oracle (Майкрософт) и Microsoft ODBC для Oracle, рассмотрите следующие вопросы:

Как поставщик OLE DB, так и драйвер ODBC, включенный в компоненты доступа к данным Майкрософт (MDAC), требуют SQL*Net 2.3.x или более поздней версии. Необходимо установить клиентское программное обеспечение Oracle 7.3.x или более поздний вариант на клиентский компьютер. Клиентский компьютер — это компьютер, на который SQL Server.

Убедитесь, что на компьютере с SQL Server установленА версия MDAC 2.5 или более поздней версии. С помощью MDAC 2.1 или более ранней версии невозможно подключиться к базам данных, в которые используется Oracle 8. x или более поздней версии.

Чтобы включить MDAC 2.5 или более поздние версии для работы с клиентской программой Oracle, реестр необходимо изменить на клиентном компьютере, который работает SQL Server, как указано в следующей таблице.

Перезапустите компьютер, который SQL Server после установки клиентского программного обеспечения Oracle.

На компьютере, который SQL Server, установите связанный сервер с помощью следующего сценария.

Если для Oracle используется драйвер Microsoft ODBC, параметр можно указать @datasrc имя DSN. Для подключения без DSN строка поставщика поставляется через @provstr параметр. С поставщик OLE DB для Oracle (Майкрософт) используйте псевдоним сервера Oracle, настроенный в файле TNSNames.Ora для @datasrc параметра. Дополнительные сведения см. в разделе "sp_addlinkedserver" в SQL Server Books Online.

В этот раздел, описание метода или задачи включены действия, содержащие указания по изменению параметров реестра. Однако неправильное изменение параметров реестра может привести к возникновению серьезных проблем. Поэтому следует в точности выполнять приведенные инструкции. Для дополнительной защиты создайте резервную копию реестра, прежде чем редактировать его. Так вы сможете восстановить реестр, если возникнет проблема. Дополнительные сведения о том, как создать и восстановить реестр, щелкните следующий номер статьи, чтобы просмотреть статью в базе знаний Майкрософт: 322756 Как создать и восстановить реестр в Windows

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

Подключение SQL Server использовать SQL Server Management Studio и запустить следующий код, чтобы включить флаг трассировки 7300.

Интерфейс::Метод не справился с кодом hex-error.

Код hex-error можно найти в файле Oledberr.h, который включен в набор разработки программного обеспечения MDAC (SDK).

Ошибка 7399. Поставщик OLE DB "%ls" для связанного сервера "%ls" сообщил об ошибке. %ls

Включай флаг трассировки 7300 или SQL profiler для захвата события ошибок OLEDB для получения расширенных сведений об ошибках OLEDB.

"ORA-12154: TNS:не удалось разрешить имя службы"

"Клиентские и сетевые компоненты Oracle (tm) не найдены. Эти компоненты поставляются корпорацией Oracle и являются частью установки клиентского программного обеспечения Oracle Version 7.3.3 (или больше) ".

Эти ошибки возникают при проблеме подключения к серверу Oracle. Просмотрите методы устранения неполадок с подключением в разделе Сервер Oracle ниже для дополнительных устранений неполадок.

Ошибка 7302. Не удается создать экземпляр поставщика OLE DB "MSDAORA" для связанного сервера "%ls".

Если вы используете стороннего поставщика Oracle, а поставщик Oracle не может работать вне процесса SQL Server, в результате изменения параметров поставщика включить его в процессе. Чтобы изменить параметры поставщика, используйте один из следующих методов.

Метод 1 Найдите следующий ключ реестра. Затем измените значение записи AllowInProcess (DWORD) на 1. Этот ключ реестра расположен под соответствующим именем поставщика: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\ProviderName .

Ошибка 7312. Недопустимое использование схемы и/или каталога для поставщика OLE DB "%ls" для связанного сервера "%ls". Было предоставлено имя из четырех части, но поставщик не предоставляет необходимые интерфейсы для использования каталога и/или схемы.

Ошибка 7313. Для поставщика "%ls" для связанного сервера была указана недействительный схема или каталог.

Ошибка 7314. Поставщик OLE DB "%ls" для связанного сервера "%ls" не содержит таблицу "%ls". Таблица либо не существует, либо у текущего пользователя нет разрешений на эту таблицу.

На стороне Oracle в верхнем шкафу хранится таблица или столбец, созданный без двойных кавычках. Если таблица или столбец заключены в двойные кавычка, таблица или столбец хранятся как есть.

В следующем вызове показано, существует ли таблица в схеме Oracle. В этом вызове также указывается точное имя таблицы.

Ошибка 7413. Не удалось подключиться к связанному серверу "%ls" (OLE DB Provider '%ls'). Включить делегирования или использовать удаленный SQL Server для текущего пользователя. Msg 18456, Level 14, State 1, Line 1 Login failed for user ' ' .

Ошибка 7391. Операция не может быть выполнена, так как поставщик OLE DB "MSDAORA" для связанного сервера "%ls" не смог начать распределенную транзакцию. След ошибки OLE DB [OLE/DB Provider 'MSDAORA' ITransactionJoin::JoinTransaction returned 0x8004d01b]

Если все записи реестра верны, MtxOCI.dll файл загружается. Если файл MtxOCI.dll не загружен, нельзя выполнять распределенные транзакции с Oracle с помощью поставщик OLE DB для Oracle (Майкрософт) или с помощью драйвера Microsoft ODBC для Oracle. Если вы используете сторонного поставщика и получаете ошибку 7391, убедитесь, что поставщик OLE DB, который вы используете, поддерживает распределенные транзакции. Если поставщик OLE DB поддерживает распределенные транзакции, убедитесь, что координатор распределенных транзакций Майкрософт (MSDTC) запущен и имеет доступ к сети.

Ошибка 7392. Невозможно запустить транзакцию для поставщика OLE DB "MSDAORA" для связанного сервера "%ls". Трассировка ошибки OLE DB [OLE/DB Provider 'MSDAORA' ITransactionLocal::StartTransaction возвращена 0x8004d013: ISOLEVEL=4096].

Поставщик OLE DB вернул ошибку 7392, так как для этого сеанса может быть активна только одна транзакция. Эта ошибка указывает на то, что при явной или неявной транзакции поставщик OLE DB пытается сделать заявление об изменении данных, а поставщик OLE DB не поддерживает вложенные транзакции. SQL Server требуется эта поддержка, чтобы при определенных условиях ошибки можно было прекратить действие заявления об изменении данных при продолжении транзакции.

Если он on, SQL Server не требует вложенной поддержки транзакций SET XACT_ABORT от поставщика OLE DB. Поэтому выполните перед выполнением заявлений об изменении данных в удаленных таблицах в SET XACT_ABORT ON неявной или явной транзакции. Делайте это в том случае, если поставщик OLE DB, который вы используете, не поддерживает вложенные транзакции.

Методы устранения неполадок с подключением к серверу Oracle

Чтобы отлукать проблемы с подключением Oracle с драйвером Microsoft ODBC для Oracle или поставщик OLE DB для Oracle (Майкрософт), выполните следующие действия:

Используйте утилиту Oracle SQL Plus (утилиту запросов на основе командной строки) для проверки возможности подключения к Oracle и получения данных.

Если вы не можете подключиться к Oracle и получить данные, у вас либо плохая установка или конфигурация компонентов клиента Oracle, либо вы неправильно создали псевдоним службы прозрачной сети (TNS) для сервера Oracle, когда вы использовали SQL*Net Easy Configuration или Oracle Net8 Easy Configuration utility. Обратитесь к администратору базы данных Oracle (DBA), чтобы убедиться, что компоненты Oracle, которые должны быть правильно установлены и настроены.

Проверьте версию клиента Oracle (SQL чистая версия), установленного * на компьютере. Для драйвера Microsoft ODBC для Oracle поставщик OLE DB для Oracle (Майкрософт) требуется установка SQL*Net версии 2.3 или более поздней версии на клиентский компьютер.

Подключение из SQL Плюс (средство клиентского запроса Oracle) может появиться, но необходимо перезапустить компьютер, чтобы подключение ODBC/OLE DB функционировало правильно.

При использовании Oracle 8i файл .rgs пуст.

Если клиент Oracle установлен, и вы получите ошибку, которая указывает на то, что компоненты клиента Oracle 7.3 или более поздней части должны быть установлены на компьютере, убедитесь, что экологическая переменная PATH на клиентский компьютер содержит папку, в которой был установлен клиент Oracle, например, Oracle_Root\Bin. Если вы не можете найти эту папку, добавьте папку в переменную PATH, чтобы устранить ошибку.

Убедитесь, что Ociw32.dll находится в папке Oracle_Root\bin. Этот .dll не может существовать в любом другом расположении на клиентский компьютер. Убедитесь, что DLLs клиентского компонента Oracle (например, файл Core40.dll и файл ora.dll) не существуют вне Oracle_Root папки или * подмостков.

Убедитесь, что на компьютере установлена одна клиентская версия Oracle. Несколько версий SQL*Net не могут существовать на одном клиентском компьютере с помехами и критическими операциями (например, TNS и alias lookups).

Корпорация Майкрософт рекомендует установить локальный клиент Oracle, а не делать это путем сопоставления удаленного клиента Oracle на компьютере, а затем включить его в путь системы для подключения к Oracle через ODBC/OLE DB. Но поставщик и драйвер проверяются с локально установленным клиентом Oracle, а не на сетевой совместной основе.

Читайте также: