1. Главная страница » Компьютеры » Oracle provider for ole db как установить

Oracle provider for ole db как установить

Автор: | 16.12.2019

This chapter introduces Oracle Provider for OLE DB (OraOLEDB).

This chapter contains these topics:

1.1 Overview of OLE DB

OLE DB is an open standard data access methodology which utilizes a set of Component Object Model (COM) interfaces for accessing and manipulating different types of data. These interfaces are available from various database providers.

1.1.1 OLE DB Design

The design of OLE DB centers around the concept of a consumer and a provider . Figure 1-1 is an illustration of the OLE DB system. The consumer represents the traditional client. The provider places data into a tabular format and returns it to the consumer.

Figure 1-1 OLE DB Flow


Description of "Figure 1-1 OLE DB Flow"

OLE DB Data Providers

OLE DB data prov >COM components that transfer data from a data source to a consumer . An OLE DB Prov >provider may return a table, it may allow the consumer to determine the format of that table, and it may perform operations on the data.

Each provider implements a standard set of COM interfaces to handle requests from the consumer. A provider may implement optional COM interfaces to provide additional functionality.

With the standard interfaces, any OLE DB consumer can access data from any provider. Because of COM components, consumers can access them in any programming language that supports COM, such as C++, Visual Basic, and Java.

OLE DB Data Consumers

The OLE DB data consumer is any application or tool that utilizes OLE DB interfaces of a provider to access a broad range of data.

1.2 Overview of OraOLEDB

Oracle Provider for OLE DB (OraOLEDB) is an OLE DB data provider that offers high performance and efficient access to Oracle data by OLE DB consumers.

In general, this developer’s guide assumes that you are using OraOLEDB through OLE DB or ADO.

For sample code, the latest patches, and other technical information on the Oracle Provider for OLE DB, go to

With the advent of the .NET framework, support has been provided for using the OLEDB.NET Data Provider with OraOLEDB. With the proper connection attribute setting, an OLEDB.NET Data Provider can utilize OraOLEDB to access Oracle Database.

"OLEDB.NET Data Provider Compatibility" for further information on support for OLEDB.NET Data Provider

1.3 System Requirements

The following items are required on a system to use Oracle Provider for OLE DB:

Windows Operating System:

32-bit: Windows Vista (Business, Enterprise, and Ultimate Editions), Windows Server 2003, Windows Server 2003 R2, Windows 2000 or Windows XP Professional Edition.

64 bit: Windows Vista x64 (Business, Enterprise, and Ultimate Editions), Windows Server 2003 x64, Windows Server 2003 R2 x64, or Windows XP x64.

64-bit: Windows Server 2003 for Itanium-based systems.

Access to an Oracle Database (Oracle 9.2 or later)

Oracle Client release 11.1 or later and Oracle Net Services (included with Oracle Provider for OLE DB installation).

Redistributable files provided with Microsoft Data Access Components (MDAC) 2.1 or higher are required by the provider. These files are available at the Microsoft Web site:

Oracle Services for Microsoft Transaction Server release 11.1 or higher. This is required for consumers using Microsoft Transaction Server (MTS) or COM+.

1.4 OraOLEDB Installation

Oracle Provider for OLE DB is included as part of your Oracle installation. It contains the features and demos that illustrate how to use this product to solve real-world problems.

During the installation process, the files listed in Table 1-1 are installed on the system. Some files have ver in their name to indicate the release version.

Table 1-1 Oracle Provider for OLE DB Files

File Description Location

OraOLEDB ver .dll

Oracle Provider for OLE DB

OraOLEDBrfc ver .dll

Oracle rowset file cache manager

OraOLEDBrmc ver .dll

Oracle rowset memory cache manager

OraOLEDBrst ver .dll

OraOLEDBgmr ver .dll

Oracle ODBC SQL parser

OraOLEDB lang ver .dll

where lang is the required language

Language-specific resource DLL

Читайте также:  Killzone 3 ps3 обзор

OraOLEDBpus ver .dll

OraOLEDButl ver .dll

OraOLEDB utility DLL

OraOLEDB ver .tlb

OraOLEDB type library

OraOLEDB header file

OraOLEDB ver .lib

OraOLEDB library file

OraOLEDB lang .msb

where lang is the required language

Language-specific message file

readme and documentation files

Release notes and online documentation

1.5 Component Certifications

Oracle provides support information for components on various platforms, lists compatible client and database versions, and identifies patches and workaround information.

Find the latest certification information at:

You must register online before using Oracle MetaLink . After logging into Oracle MetaLink , select Product Lifecycle from the left column. From the Products Lifecycle page, click Certifications . Other Product Lifecycle options include Product Availability, Desupport Notices, and Alerts.

В Microsoft SQL Server есть возможность обращения к различным источникам данных, которые расположены вне SQL сервера, это возможно благодаря технологии связанных серверов и сегодня мы с Вами рассмотрим пример настройки связанного сервера с СУБД Oracle.

Подробно о том, что такое связанный сервер, а также простые примеры настройки связанных серверов мы с Вами рассматривали в материале – Связанные серверы в MS SQL Server 2014.

Сейчас как я уже сказал, мы будем настраивать связанный сервер, источником данных которого будет выступать СУБД Oracle.

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

    Microsoft OLE DB Prov >Все рекомендуют использовать провайдер от Oracle, в том числе и я, основываясь на собственном опыте. Так как OraOLEDB.Oracle более оптимизирован для работы с Oracle, например, как-то раз при использовании провайдера MSDAORA текстовые данные на русском языке (VARCHAR2) с сервера Oracle приходили мне в виде «. », после недолгого шаманства пришлось сменить провайдера.

Поэтому сегодня мы будем рассматривать пример настройки связанного сервера с использованием Oracle Provider for OLE DB (OraOLEDB.Oracle) от компании Oracle.

Практически для любого поставщика требуются какие-то инструменты, чтобы он функционировал, в том числе и для OraOLEDB.Oracle.

Для того чтобы провайдер OraOLEDB.Oracle работал его необходимо установить, предварительно скачав с официального сайта Oracle.

Как скачать Oracle Prov >Oracle Provider for OLE DB на текущий момент распространяется в составе инструмента для разработчиков ODAC.

Oracle Data Access Components (ODAC) – это набор компонентов для разработчиков, который предоставляет им доступ к данным Oracle.

Чтобы его скачать, необходимо зарегистрироваться на сайте Oracle или если Вы уже зарегистрированы, то войти в аккаунт. Затем переходите на страницу загрузки ODAC вот она.

Потом в зависимости от Вашей системы (т.е. на которой установлен MS SQL Server), Вы выбираете 32 битную версию или 64 битную. У меня система 64 битная, поэтому я нажимаю на ссылку 64-bit ODAC Downloads.

После перехода на следующую страницу сразу соглашаетесь с условиями лицензионного соглашения, т.е. отмечаете пункт «Accept License Agreement».

Далее Вы выбираете версию ODAC, которая соответствует версии СУБД Oracle.

При этом название файлов с префиксом «Xcopy» означает, что установка будет осуществляться посредством пакетных файлов (батников). Если такого префикса нет, то в данном архиве присутствует некий дистрибутив с графическим интерфейсом.

Итак, как я уже сказал у меня версия Oracle Express Edition 11g, поэтому я выбираю 64-bit ODAC 11.2 Release 5 (11.2.0.3.20) for Windows x64 – это вариант с установкой через графический интерфейс.

В итоге у меня загрузился файл ODAC1120320_x64.zip

Установка Oracle Data Access Components (ODAC)

Распаковываем архив и запускам файл setup.exe.

Шаг 1

Запустится программа установки ODAC, на первом окне мы нажимаем «Next».

Шаг 2

Затем оставляем по умолчанию, т.е. нам нужна установка клиентской части, жмем «Next».

Шаг 3

Далее, если хотите, можете указать каталог для установки ODAC, я предварительно создал папку «OracleOleDB» на диске C специально для этих целей, поэтому я ее и выбираю, жмем «Next».

Шаг 4

Теперь нам необходимо выбрать компоненты, которые мы хотим установить, в нашем случае нам нужен только Oracle Provider for OLE DB и, конечно же, Oracle Instant Client, с остальных компонентов снимаем галочку и жмем «Next».

Шаг 5

Проверяем все параметры установки и жмем «Install».

В итоге начнется процесс установки.

Он будет завершен, когда появится следующее сообщение, жмем «Exit».

Шаг 6

После того как установился провайдер Oracle Provider for OLE DB нам необходимо в каталог «C:OracleOleDBproduct11.2.0client_1NetworkAdmin» (в моем случае) скопировать файл tnsnames.ora с сервера Oracle (из каталога …
etworkADMIN) или создать самим такой файлик и вписать в него настройки подключения, которые нам сообщит администратор Oracle, например, у меня для Express Edition они вот такие.

В данном каталоге есть папка Sample, в которой есть пример заполнения файла tnsnames.ora.

После установки Oracle Provider for OLE DB необходимо перезагрузить сервер.

Проверка работы провайдера OraOLEDB.Oracle

Перед тем как переходить к созданию связанного сервера на Microsoft SQL Server необходимо проверить правильно ли мы установили провайдера. Это можно сделать следующим образом. Создайте на рабочем столе простой текстовый файл, например, TestConnect.txt, затем измените его расширение на TestConnect.udl

Читайте также:  Amd athlon 64 x2 dual core 4200

Запустите его, и у Вас откроется окно «Свойства канала передачи данных». Далее Вам необходимо на вкладке «Поставщик данных» выбрать поставщика, т.е. в нашем случае это «Oracle Provider for OLE DB» и нажать «Далее».

После чего Вы перейдете на вкладку «Соединение», где нужно заполнить параметры подключения:

  • Источник данных — адрес сервера Oracle;
  • Пользователь – это пользователь для подключения к СУБД Oracle;
  • Пароль – соответственно пароль для подключения к СУБД Oracle.

И для проверки связи нажимаем «Проверить соединение».

Если у Вас появилось сообщение «Проверка соединения выполнена», то можете переходить к созданию связанного сервера, если нет, то у Вас что-то с провайдером или с сервером Oracle.

Создание связанного сервера с использованием провайдера OraOLEDB.Oracle

Для того чтобы создать связанный сервер в Microsoft SQL Server запустите среду Management Studio.

Сначала давайте у провайдера изменим один параметр под названием «AllowInProcess» или «Допускать в ходе процесса», так как этого требует провайдер OraOLEDB.Oracle. В остальных случаях не рекомендуется использовать данную опцию, так как в этом случае если произойдет сбой провайдера, то и весь SQL сервер даст сбой.

Для этого в обозревателе объектов найдите контейнер «Объекты сервера -> Связанные серверы-> Поставщики», откройте его и найдите наш провайдер OraOLEDB.Oracle. Щелкните правой кнопкой мыши и откройте «Свойства».

Отметьте вышеуказанный параметр, т.е. «Допускать в ходе процесса» и нажмите «ОК».

Теперь переходим непосредственно к созданию так называемого Linked-сервера.

Щелкаем правой кнопкой мыши по контейнеру «Связанные серверы» и выбираем «Создать связанный сервер».

Затем вводим параметры связанного сервера, а именно:

  • Связанный сервер – имя сервера, т.е. название объекта к которому мы будем обращаться из своих SQL инструкций;
  • Поставщик – провайдер, т.е. Oracle Prov >

Потом переходим на вкладку «Безопасность», выбираем пункт «Устанавливать с использованием следующего контекста безопасности» и вводим логин и пароль от СУБД Oracle. Жмем «ОК».

Все готово, связанный сервер мы создали, и он у нас отобразился в списке связанных серверов в Management Studio. Теперь мы можем обращаться (посылать запросы) к этому связанному серверу, например, у меня на сервере Oracle есть таблица ORACLETABLE, которая содержит просто какой-то список товаров, и для того чтобы осуществить выборку данных из этой таблицы с помощью Management Studio SQL сервера, можно использовать следующие запросы.

Если Вы предпочитаете пользоваться SQL инструкциями, то ниже представлена инструкция, которая делает ровно то же самое что и мы чуть ранее в графическом интерфейсе SSMS.

Устранение возможных ошибок при создании связанного сервера с Oracle в Microsoft SQL Server

Ошибка 7302

«Не удалось создать экземпляр поставщика OLE DB «OraOLEDB.Oracle» для связанного сервера …»

Возможно, отсутствует (или некорректный) путь к каталогу с Instant Client (каталог в который Вы установили ODAC) в системной переменной PATH. Необходимо его прописать и перезапустить SQL сервер. Также возможно параметр ORACLE_HOME задан неверно.

Ошибка 7303

Данная ошибка возвращается SQL сервером в случае, когда не удалось проинициализировать объект источника данных поставщика OLE DB, например, в нашем случае «OraOLEDB.Oracle». Причин, по которым она появляется много, поэтому нам необходимо смотреть ошибку, которую вернул сам провайдер.

Ошибки при инициализации провайдера OraOLEDB.Oracle

Возможные причины, устранение
ORA-01017: invalid username/password; logon denied Неправильно указан логин и пароль к БД Oracle.
ORA-12154: TNS:could not resolve the connect identifier specified Файл tnsnames.ora отсутствует или в нем указан несуществующий SID и SERVICE_NAME. Также возможно Вы неправильно ввели его при создании связанного сервера в строке «Источник данных».
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor В файле tnsnames.ora неправильно введен SERVICE_NAME
ORA-12533: TNS:illegal ADDRESS parameters Некорректное название параметров в файле tnsnames.ora (например, ADDRESS).
ORA-12541: TNS:no listener Ошибка означает, что у Вас в файле tnsnames.ora неправильно указан PORT, на котором работает сервер Oracle. Необходимо узнать на каком порту работает сервер Oracle, и указать его в этом параметре.
ORA-12545: Connect failed because target host or object does not exist Данная ошибка возвращается тогда, когда в файле tnsnames.ora неправильно указан (или просто недоступен) сервер Oracle, т.е. параметр HOST. В данном случае необходимо: проверить данный параметр, проверить доступность сервера.

В случае если у Вас в каких-нибудь сообщениях выскакивает провайдер OLE DB «MSDAORA» (или любой другой провайдер или вообще он не указан), то это означает, что Вы неправильно выбрали провайдера при создании связанного сервера. MSDAORA – это провайдер от компании Microsoft. OraOLEDB.Oracle – от компании Oracle, как я говорил, рекомендовано использовать провайдер от Oracle.

Читайте также:  Philips gogear muse 8gb

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

Ошибка 7314

«Поставщик OLE DB «OraOLEDB.Oracle» для связанного сервера «Название сервера» не содержит таблицы «Название таблицы». Таблица либо не существует, либо текущий пользователь не имеет разрешения на доступ к ней.»

Здесь Вы, наверное, ошиблись в написании самого объекта, например, написали имя объекта в неправильном регистре. Oracle чувствителен к регистру, если к нему обращаться через ссылку связанного сервера, например

В этом случае если таблица OracleTable на сервере Oracle создана как ORACLETABLE, у Вас возникнет ошибка. Чтобы этого избежать, можно указать правильный регистр или использовать конструкцию OPENQUERY, например

Также не исключено что объекта действительно нет или у Вас отсутствуют необходимые разрешения.

Для того чтобы посмотреть, какие объекты и в каком регистре есть на сервере (т.е. узнать точное имя) можно использовать процедуру sp_tables_ex, например

Ошибка 7356

«Поставщик OLE DB «MSDAORA» для связанного сервера «Название сервера» предоставил несогласованные метаданные для столбца.»

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

Ошибка 7357

«Не удалось обработать объект «Название объекта». Поставщик OLE DB «OraOLEDB.Oracle» для связанного сервера «Название сервера» обнаружил, что у объекта либо нет ни одного столбца, либо текущий пользователь не имеет разрешения на доступ к объекту.»

В данном случае скорей всего Вы пытаетесь обратиться к таблице (или другому объекту) от имени пользователя, который не имеет разрешения на доступ к ней. Другими словами, у пользователя, которого Вы указывали при создании связанного сервера, нет необходимых прав.

Этот компонент будет удален в будущих версиях Windows. This feature will be removed in a future version of Windows. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Вместо этого используйте поставщик OLE DB для Oracle. Instead, use Oracle’s OLE DB provider.

Поставщик Microsoft OLE DB для Oracle позволяет ADO для доступа к базам данных Oracle. The Microsoft OLE DB Provider for Oracle allows ADO to access Oracle databases.

Параметры строки соединения Connection String Parameters

Чтобы подключиться к этим поставщиком, задайте поставщика аргумент ConnectionString свойства: To connect to this provider, set the Provider argument of the ConnectionString property to:

Чтение поставщика свойство возвратит также эту строку. Reading the Provider property will return this string as well.

Если в базе данных Oracle выполняется запрос соединения с курсор keyset или dynamic, возникает ошибка. If a join query with a keyset or dynamic cursor is executed in an Oracle database, an error occurs. Oracle поддерживает только статический курсор только для чтения. Oracle only supports a static read-only cursor.

Типичная строка подключения Typical Connection String

— Строка соединения для данного поставщика: A typical connection string for this provider is:

Строка состоит из следующих ключевых слов: The string consists of these keywords:

Ключевое слово Keyword Описание Description
Поставщик Provider Указывает поставщика OLE DB для Oracle. Specifies the OLE DB Provider for Oracle.
Источник данных Data Source Указывает имя сервера. Specifies the name of a server.
Идентификатор пользователя User ID Указывает имя пользователя. Specifies the user name.
Пароль Password Указывает пароль пользователя. Specifies the user password.

Если вы подключаетесь к поставщик источника данных, который поддерживает проверку подлинности Windows, следует указать Trusted_Connection = yes или Integrated Security = SSPI вместо идентификатора пользователя и пароля сведения в строке подключения. If you are connecting to a data source prov >

Параметры подключения для поставщика Provider-Specific Connection Parameters

Поставщик поддерживает несколько параметров подключения для поставщика, помимо определенные ADO. The provider supports several provider-specific connection parameters in addition to those defined by ADO. Как с помощью свойства соединения ADO, эти свойства от поставщика может быть переведена с помощью свойства коллекцию подключения или как часть ConnectionString. As with the ADO connection properties, these provider-specific properties can be set via the Properties collection of a Connection or as part of the ConnectionString.

Эти параметры являются полностью описано в Справочник программиста OLE DB по. These parameters are fully described in the OLE DB Programmer’s Reference. Индекс динамических свойств ADO предоставляет перекрестной ссылки между эти имена параметров и соответствующие свойства OLE DB. The ADO Dynamic Property Index provides a cross-reference between these parameter names and the corresponding OLE DB properties.

«>

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *