Поделиться через


Источник OLE DB

Источник OLE DB извлекает сведения из множества поддерживающих технологию OLE DB реляционных баз данных с помощью таблицы базы данных, представления или команды SQL. Например, источник OLE DB может извлекать данные из таблиц Microsoft Office Access или SQL Server.

ПримечаниеПримечание

Для источника данных Microsoft Office Excel 2007 потребуется поставщик данных, отличный от того, который использовался в предыдущих версиях Excel. Дополнительные сведения см. в разделе Как подключиться к книге Excel.

Источник OLE DB предоставляет четыре различных режима доступа к данным, используемые при извлечении данных:

  • Таблица или представление.

  • Таблица или представление, указанные в переменной.

  • Результат выполнения инструкции SQL. Может использоваться параметризованный запрос.

  • Результат выполнения инструкции SQL хранится в переменной.

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

Данный источник для подключения к источнику данных использует диспетчер соединений OLE DB, в котором задается используемый поставщик OLE DB. Дополнительные сведения см. в разделе Диспетчер соединений OLE DB.

Проект служб Integration Services также предоставляет объект источника данных, из которого можно создать диспетчер соединений OLE DB, делая источники данных и представления источников данных доступными для источника OLE DB. Дополнительные сведения см. в разделах Источник данных (службы SSIS) и Представление источника данных (службы SSIS).

Некоторые поставщики OLE DB накладывают определенные ограничения на источник OLE DB.

  • Поставщик Microsoft OLE DB для Oracle не поддерживает типы данных Oracle BLOB, CLOB, NCLOB, BFILE или UROWID, так что источник OLE DB не может извлекать данные из таблиц, содержащих столбцы с этими типами данных.

  • Поставщики IBM OLE DB DB2 и Microsoft OLE DB DB2 не поддерживают команду SQL, вызывающую хранимую процедуру. Если такая команда использована, источник OLE DB не может создать метаданные столбца. В результате этого отсутствуют доступные столбцы данных для компонентов потоков данных, которые располагаются следом за источником OLE DB в потоке данных, что приводит к сбою потокового выполнения.

Источник OLE DB имеет один обычный выход и один выход ошибок.

Использование параметризованных инструкций SQL

Источник OLE DB может использовать инструкцию SQL для извлечения данных. Это может быть инструкция SELECT или EXEC.

Источник OLE DB использует диспетчер соединений OLE DB для соединения с источником данных, из которого происходит извлечение данных. В зависимости от поставщика, используемого диспетчером соединений OLE DB, и СУРБД, с которой он соединяется, имена и списки параметров подчиняются разным правилам. Если имена параметров возвращаются из СУРБД, их можно использовать для сопоставления параметров из списка с параметрами из инструкции SQL, в противном случае параметры сопоставляются с параметрами в инструкции SQL в соответствии с их порядковым положением в списке параметров. Типы поддерживаемых имен параметров зависят от поставщика. Например, одни поставщики требуют, чтобы использовались имена переменных или столбцов, а другие требуют, чтобы использовались символьные имена, например, 0 или Param0. Правила именования параметров в инструкциях SQL см. в документации к поставщику.

Если используется диспетчер соединений OLE DB, нельзя использовать параметризованные вложенные запросы, поскольку источник OLE DB не сможет получить сведения о параметрах через поставщик OLE DB. Однако можно использовать выражение, чтобы объединить значения параметров в строку запроса и задать свойство SqlCommand источника. В конструкторе служб SSIS можно настроить источник OLE DB с помощью диалогового окна Редактор источника «OLE DB», а также сопоставить переменные с параметрами в диалоговом окне Установка параметров запроса.

Задание параметров с помощью порядкового положения

Если имена параметров не возвращаются, то, с какими создателями параметров они сопоставляются во время выполнения, определяет порядок следования параметров в списке Параметры в диалоговом окне Установка параметров запроса. Первый параметр в списке сопоставляется с первым символом «?» в инструкции SQL, второй — со вторым символом «?» и т. д.

Следующая инструкция SQL выбирает строки из таблицы Product в базе данных AdventureWorks. Первый параметр в списке Сопоставления сопоставляется с первым параметром, со столбцом Color, второй параметр сопоставляется со столбцом Size.

SELECT * FROM Production.Product WHERE Color = ? AND Size = ?

Имена параметров значения не имеют. Например, если у параметра такое же имя, как и у столбца, с которым он сопоставляется, но он не стоит в правильном положении по порядку в списке Параметры, то сопоставление параметра во время выполнения будет основано на порядковом положении параметра, а не на его имени.

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

Задание параметров с помощью имен

Если из СУРБД возвращаются действительные имена параметров RDBMS, то параметры, используемые в инструкциях SELECT и EXEC, сопоставляются по имени. Имена параметров должны совпадать с именами, ожидаемыми хранимой процедурой, которая запускается инструкцией SELECT или EXEC.

Следующая инструкция SQL запускает хранимую процедуру uspGetWhereUsedProductID, доступную в базе данных AdventureWorks.

EXEC uspGetWhereUsedProductID ?, ?

Хранимая процедура ожидает, что в переменных @StartProductID и @CheckDate будут содержаться значения параметров. Порядок следования параметров в списке Сопоставления неважен. Единственное требование состоит в том, что имена параметров должны совпадать с именами переменных в хранимой процедуре вплоть до знака @.

Сопоставление параметров и переменных

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

Устранение неполадок, связанных с источником OLE DB

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

Настройка источника OLE DB

Свойства задаются программно или через конструктор служб SSIS.

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

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

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

Значок служб Integration Services (маленький)Будьте в курсе новых возможностей cлужб Integration Services

Чтобы загружать новейшую документацию, статьи, образцы и видеоматериалы от корпорации Майкрософт, а также лучшие решения от участников сообщества, посетите страницу служб Integration Services на сайтах MSDN или TechNet:

Чтобы получать автоматические уведомления об этих обновлениях, подпишитесь на RSS-каналы, предлагаемые на этой странице.