Интеграция функции скалярного значения в пакет служб SSIS - PullRequest
0 голосов
/ 12 сентября 2011

У меня есть функция скалярного значения, которую я создал для расчета старения, и я хочу отделить ее от своего пакета служб SSIS, который я запускаю ежемесячно.Как мне сделать эту работу?

Ответы [ 3 ]

1 голос
/ 13 сентября 2011

Если вы имеете в виду, что у вас есть функция t-sql, которую вы хотели бы как-то вызвать в потоке данных, то это не то, что вы действительно можете сделать.У вас есть следующие опции:

  1. Запишите функцию в виде выражения служб SSIS и выполните вычисления в производном столбце.Это может быть не идеально, если функция была сложной.

  2. Напишите функцию в задании сценария и используйте преобразование сценария.Это хорошо работает, если функция относительно проста, но ее нелегко использовать повторно.

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

  4. Загрузите данные в промежуточную таблицу в базе данных и затем используйте функцию при попытке объединитьданные в вашу конечную таблицу назначения.Преимущество этого подхода заключается в том, что его проще всего реализовать.Недостатком этого подхода является то, что вам приходится записывать данные на диск дважды, поэтому вы неизбежно получите худшую производительность, чем если бы вы использовали какое-либо другое решение.

0 голосов
/ 18 августа 2017

Я предполагаю, что это скалярная функция в базе данных MS SQL.Используйте его в команде SQL в источнике потока данных в операторе выбора.

Select dbo.myFunction(myParam)
From myTable
0 голосов
/ 15 сентября 2011

Используйте преобразование команды OLEDB, как указано здесь:

Возвращаемое значение SSIS хранимой процедуры в команде OLE DB

Измените, как требуется.

...