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


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

Область применения: среда выполнения интеграции SSIS SQL Server в Фабрика данных 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" к потоку данных, перетащив соединитель — зеленую или красную стрелку — из источника данных или из предыдущего преобразования в преобразование "Команда OLE DB".

  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. Чтобы сохранить обновленный пакет, щелкните Сохранить в меню Файл .

См. также

Поток данных
Преобразования служб Integration Services