Источник OLE DB

Применяется к:sql Server SSIS Integration Runtime в Фабрика данных Azure

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

Примечание.

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

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

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

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

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

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

Примечание.

Когда инструкция SQL используется для вызова хранимой процедуры, возвращающей результаты из временной таблицы, используйте параметр WITH RESULT SETS для определения метаданных набора результатов.

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

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

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

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

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

  • Поставщик IBM OLE DB2 и поставщик Microsoft OLE 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 в базе данных AdventureWorks2022 . Первый параметр в списке Сопоставления сопоставляется с первым параметром, со столбцом Color , второй параметр сопоставляется со столбцом Size .

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

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

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

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

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

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

EXEC uspGetWhereUsedProductID ?, ?

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

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

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

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

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

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

Свойства можно задать программным способом или с помощью конструктора служб SSIS.

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

Службы SSIS с Подключение oracle

Редактор источника «OLE DB» (страница «Диспетчер соединений»)

Используйте страницу Диспетчер соединений диалогового окна Редактор источника OLE DB для выбора диспетчера соединений OLE DB для источника. На этой странице также можно выбрать таблицу или представление базы данных.

Примечание.

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

Чтобы загрузить данные из источника данных, использующего Microsoft Office Excel 2003 или более ранних версий, используйте источник Excel. Дополнительные сведения см. в разделе Редактор источника Excel (страница "Диспетчер соединений").

Примечание.

Свойство CommandTimeout источника OLE DB недоступно в диалоговом окне Редактор источника OLE DB, но может быть установлено с помощью расширенного редактора. Дополнительные сведения о данном свойстве см. в подразделе «Источник Excel» раздела OLE DB Custom Properties.

Откройте редактор источника OLE DB (страницу диспетчера соединений)

  1. Добавьте источник OLE DB в пакет служб Integration Services в SQL Server Data Tools (SSDT).

  2. Щелкните правой кнопкой мыши компонент источника, а затем выберите пункт Изменить.

  3. Щелкните Диспетчер соединений.

Статические параметры

Диспетчер соединений OLE DB
Выберите из списка существующий диспетчер соединений или создайте новое соединение, нажав кнопку Создать.

Новый
Создайте новый диспетчер соединений с помощью диалогового окна Настройка диспетчера соединений OLE DB .

Режим доступа к данным
Укажите метод выбора данных из источника.

Параметр Описание
Таблица или представление Получение данных из таблицы или представления в источнике данных OLE DB.
Переменная, содержащая имя таблицы или представления Задайте переменную, содержащую имя таблицы или представления.

См. также:Использование переменных в пакетах
Команда SQL Получение данных из источника данных OLE DB с использованием SQL-запроса.
Команда SQL из переменной Задайте текст SQL-запроса в переменную.

Предварительный просмотр
Осуществляйте предварительный просмотр результатов в диалоговом окне Просмотр данных . В окнеПредварительный просмотр может отображаться до 200 строк.

Примечание.

При предварительном просмотре столбцы с определяемым пользователем типом данных CLR не содержат данных. Вместо этого отображается текст <value too big to display> (значение слишком велико для отображения) или значение System.Byte[]. Первый отображается при доступе к источнику данных с помощью поставщика OLE DB SQL, последний при использовании поставщика собственного клиента SQL Server.

Динамические параметры режима доступа к данным

Режим доступа к данным = Таблица или представление

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

Режим доступа к данным — переменная, содержащая имя таблицы или представления

Имя переменной
Выберите переменную, содержащую имя таблицы или представления.

Режим доступа к данным — команда SQL

Текст команды SQL
Введите текст SQL-запроса, постройте запрос, нажав кнопку Создать запрос, или выберите файл, содержащий текст запроса, нажав кнопку Обзор.

Параметры
Если введен параметризованный запрос, где в тексте запроса в качестве заполнителя параметра использовался знак ?, воспользуйтесь диалоговым окном Установка параметров запроса для сопоставления входных параметров запроса и переменных пакета.

Создать запрос
Воспользуйтесь диалоговым окном Построитель запросов для визуального конструирования SQL-запроса.

Обзор
Воспользуйтесь диалоговым окном Открыть для выбора файла, содержащего текст SQL-запроса.

Анализ запроса
Проверить синтаксис текста запроса.

Режим доступа к данным = Команда SQL из переменной

Имя переменной
Выберите переменную, содержащую текст SQL-запроса.

Редактор источника «OLE DB» (страница «Столбцы»)

Страница Столбцы диалогового окна Редактор источника "OLE DB" используется для сопоставления выходного столбца с каждым внешним столбцом (источником).

Параметры

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

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

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

Редактор источника «OLE DB» (страница «Вывод ошибок»)

Используйте страницу Вывод ошибок диалогового окна Редактор источника «OLE DB» , чтобы выбрать параметры обработки ошибок и установить свойства столбцов вывода ошибок.

Параметры

Ввод-вывод
Просмотр имени источника данных.

Столбец
Просмотрите внешние (исходные) столбцы, выбранные на странице Диспетчер соединений диалогового окна Редактор источника "OLE DB".

Ошибка
Задайте действие, которое необходимо выполнить при возникновении ошибки: пропустить ошибку, перенаправить строку или вызвать сбой компонента.

См. также:Обработка ошибок в данных

Усечение
Укажите, что нужно сделать при усечении: пропустить ошибку, перенаправить строку или вызвать сбой компонента.

Description
Просмотреть описание ошибки.

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

Применить
Применить параметр обработки ошибок к выбранным ячейкам.

См. также

Назначение OLE DB
Переменные в службах Integration Services (SSIS)
Поток данных