У меня есть пакет DTS с задачей преобразования данных (data pump). Я хотел бы получить данные с результатами хранимой процедуры, которая принимает параметры, но DTS не будет предварительно просматривать набор результатов и не может определять столбцы в задаче преобразования данных.
Кто-нибудь заставил это работать?
Предостережение: хранимая процедура использует две временные таблицы (и, конечно же, очищает их).





Вам нужно будет фактически загрузить их в таблицу, а затем вы можете использовать задачу SQL, чтобы переместить ее из этой таблицы в место для перманента, если вам нужно сделать перевод.
однако я обнаружил, что при работе с хранимой процедурой для получения данных почти так же быстро и легко перемещать их в место назначения одновременно!
Нет, я мог только хранить хранимые процедуры с DTS, если бы они сохраняли состояние в таблицах отходов.
Введите допустимые значения для параметров хранимой процедуры, чтобы она запускалась и возвращала некоторые данные (или даже не данные, вам просто нужны столбцы). Затем вы сможете выполнить сопоставление / и т. д. Затем выполните автономное редактирование и измените фактические значения параметров (я предполагаю, что вы получаете их из глобальной переменной).
DECLARE @param1 DataType1
DECLARE @param2 DataType2
SET @param1 = global variable
SET @param2 = global variable (I forget exact syntax)
--EXEC procedure @param1, @param2
EXEC dbo.proc value1, value2
Обычно вы запускаете его так, чтобы процедура возвращала результаты. Выполните сопоставление, затем при отключенном редактировании закомментируйте второй EXEC и раскомментируйте первый EXEC, и он должен работать.
В основном вам просто нужно запустить процедуру и выплюнуть результаты. Даже если вы не вернете строки, он все равно будет правильно отображать столбцы. У меня нет доступа к нашей производственной системе (или даже базе данных) для создания пакетов dts. Поэтому я создаю их в фиктивной базе данных и заменяю хранимую процедуру чем-то, что возвращает те же столбцы, что и производственное приложение, но без строк данных. Затем, после завершения сопоставления, я перемещаю его в производственную коробку с реальной процедурой, и она работает. Это отлично работает, если вы отслеживаете базу данных с помощью скриптов. Вы можете просто запустить сценарий, чтобы создать пустую процедуру оболочки, а когда закончите, запустить сценарий, чтобы вернуть истинную процедуру.
Сработал ли здесь какой-либо ответ?