преобразование «Команда 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»
В SQL Server Data Tools (SSDT) откройте проект служб Integration Services, содержащий нужный пакет.
Чтобы открыть пакет, дважды щелкните его в обозревателе решений.
Перейдите на вкладку Поток данных , затем из области элементовпереместите преобразование «Команда OLE DB» в область конструктора.
Подключите преобразование "Команда OLE DB" к потоку данных, перетащив соединитель — зеленую или красную стрелку — из источника данных или из предыдущего преобразования в преобразование "Команда OLE DB".
Щелкните правой кнопкой мыши компонент и выберите редактировать или показать Расширенный редактор.
На вкладке Диспетчеры соединений выберите диспетчер соединений OLE DB в списке Диспетчер соединений . Дополнительные сведения см. в разделе Диспетчер соединений OLE DB.
Перейдите на вкладку Свойства компонентов и нажмите кнопку с многоточием (…) в поле SqlCommand.
В редакторе строковых значенийвведите параметризованную инструкцию SQL, используя знак вопроса (?) в качестве маркера параметра для каждого параметра.
Нажмите кнопку Обновить. При нажатии кнопки Обновитьпреобразование создает столбец для каждого параметра в коллекции "Внешние столбцы" и устанавливает свойство DBParamInfoFlags.
Щелкните вкладку Свойства входов и выходов .
Раскройте Вход команды OLE DB, затем раскройте коллекцию Внешние столбцы.
Проверьте, что в коллекции Внешние столбцы перечисляются столбцы для всех параметров инструкции SQL. Столбцы имеют имена Param_0, Param_1и т. д.
Не изменяйте имена столбцов. При изменении имен столбцов службы Integration Services создает ошибку проверки для преобразования команды OLE DB.
Не изменяйте и тип данных. Свойство DataType в каждом столбце устанавливается в соответствии с правильным типом данных.
Если в списке Внешние столбцы нет ни одного столбца, введите их вручную.
Щелкните Добавить столбец один раз для каждого параметра в инструкции SQL.
Переименуйте столбцы в Param_0, Param_1и т. д.
Укажите значение в свойстве DBParamInfoFlags. Значение должно соответствовать значению перечисления OLE DB DBPARAMFLAGSENUM. Дополнительные сведения см. в справочной документации по OLE DB.
Задайте тип данных столбца и в зависимости от типа данных задайте кодовую страницу, длину, точность и масштаб столбца.
Чтобы удалить неиспользуемый параметр, выберите параметр в коллекции Внешние столбцы, затем щелкните Удалить столбец.
Щелкните Сопоставления столбцов и сопоставьте столбцы в списке Входные столбцы с параметрами в списке Доступные целевые столбцы .
Щелкните OK.
Чтобы сохранить обновленный пакет, щелкните Сохранить в меню Файл .