Преобразование команд OLE DB

Область применения:SQL Server среда выполнения интеграции SSIS в Фабрика данных Azure

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

Преобразование «Команда OLE DB» можно настроить следующими способами.

  • Указать инструкцию SQL, которую преобразование выполняет для каждой строки.

  • Укажите количество секунд до истечения времени ожидания SQL-запроса.

  • Указать кодовую страницу по умолчанию.

Обычно инструкция SQL содержит параметры. Значения параметров хранятся во внешних столбцах на входе преобразования, и сопоставление входного столбца с внешним столбцом означает сопоставление входного столбца с параметром. Например, для размещения строк в таблице DimProduct в соответствии со значениями в столбце ProductKey и для их последующего удаления можно сопоставить внешний столбец Param_0 с входным столбцом ProductKey и выполнить инструкцию SQL DELETE FROM DimProduct WHERE ProductKey = ?. Преобразование «Команда OLE DB» определяет имена параметров, которые нельзя изменить. Имена параметров представляют собой Param_0, Param_1и т. д.

Если преобразование «Команда OLE DB» настраивается в диалоговом окне Расширенный редактор , с помощью кнопки Обновить можно автоматически сопоставить параметры инструкции SQL с внешними столбцами входа преобразования, а также определить характеристики каждого параметра. Тем не менее, если поставщик OLE DB, используемый преобразованием «Команда OLE DB», не поддерживает извлечение сведений о параметрах из самих параметров, то внешние столбцы должны настраиваться вручную. В этом случае для каждого параметра необходимо добавить столбец к внешнему входу преобразования, присвоить столбцам имена типа Param_0, указать значение свойства DBParamInfoFlags и сопоставить входные столбцы, в которых содержатся значения параметров, с внешними столбцами.

Значение свойства DBParamInfoFlags представляет собой характеристики параметра. Например, значение 1 показывает, что параметр является входным, а значение 65 показывает, что параметр является входным и может принимать значение NULL. Значения должны соответствовать значениям из перечисления OLE DB DBPARAMFLAGSENUM. Дополнительные сведения см. в справочной документации по OLE DB.

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

Это преобразование содержит один вход, один обычный вывод и один вывод ошибок.

Ведение журнала

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

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

Настроить преобразование «Команда OLE DB»

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

Настройка преобразования «Команда OLE DB»

  1. В SQL Server Data Tools (SSDT) откройте проект служб Integration Services, содержащий нужный пакет.

  2. Чтобы открыть пакет, дважды щелкните его в обозревателе решений.

  3. Перейдите на вкладку Поток данных , затем из области элементовпереместите преобразование «Команда OLE DB» в область конструктора.

  4. Подключите компонент преобразования "OLE DB Command" к потоку данных, перетащив к нему соединитель — зеленую или красную стрелку — от источника данных или предыдущего преобразования.

  5. Щелкните правой кнопкой мыши компонент и выберите редактировать или показать Расширенный редактор.

  6. На вкладке Диспетчеры соединений выберите диспетчер соединений OLE DB в списке Диспетчер соединений . Дополнительные сведения см. в разделе Диспетчер соединений OLE DB.

  7. Перейдите на вкладку Свойства компонентов и нажмите кнопку с многоточием (…) в поле SqlCommand.

  8. В редакторе строковых значенийвведите параметризованную инструкцию SQL, используя знак вопроса (?) в качестве маркера параметра для каждого параметра.

  9. Нажмите кнопку Обновить. При нажатии кнопки Обновитьпреобразование создает столбец для каждого параметра в коллекции "Внешние столбцы" и устанавливает свойство DBParamInfoFlags.

  10. Щелкните вкладку Свойства входов и выходов .

  11. Разверните Вход команды OLE DB, а затем разверните Внешние столбцы.

  12. Убедитесь, что в Внешние столбцы содержится столбец для каждого параметра в операторе SQL. Столбцы имеют имена Param_0, Param_1и т. д.

    Не изменяйте имена столбцов. При изменении имен столбцов службы Integration Services создает ошибку проверки для преобразования команды OLE DB.

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

  13. Если в списке Внешние столбцы нет ни одного столбца, введите их вручную.

    • Щелкните Добавить столбец один раз для каждого параметра в инструкции SQL.

    • Переименуйте столбцы в Param_0, Param_1и т. д.

    • Укажите значение в свойстве DBParamInfoFlags. Значение должно совпадать со значением из перечисления OLE DB DBPARAMFLAGSENUM. Дополнительные сведения см. в справочной документации по OLE DB.

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

    • Чтобы удалить неиспользуемый параметр, выберите параметр в коллекции Внешние столбцы, затем щелкните Удалить столбец.

    • Щелкните Сопоставления столбцов и сопоставьте столбцы в списке Доступные входные столбцы параметрам в списке Доступные целевые столбцы.

  14. Щелкните OK.

  15. Чтобы сохранить обновленный пакет, щелкните Сохранить в меню Файл .