Как вызвать файл .dtsx с входными параметрами хранимой процедуры? - PullRequest
0 голосов
/ 26 февраля 2019

Как вызвать файл пакета .dtsx с входными параметрами из хранимой процедуры?

Хранимая процедура # 1 -> Передаст список файлов для экспорта в Excel как значение, разделенное запятыми, в переменной.

Входная переменная будет передана в пакет служб SSIS для экспорта данных в Excel.

Как обрабатывать пакет служб SSIS, который имеет параметры ввода из вызова хранимой процедуры?

1 Ответ

0 голосов
/ 27 февраля 2019

Использование DtExec и xp_cmdshell

Один из способов сделать это - запустить утилиту DtExec из файловой системы с помощью утилиты xp_cmdshell внутри сервера sql.

Сначала необходимо включить утилиту xp_cmdshell:

-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
-- WITH OVERRIDE disables the configuration value checking if the value is valid
RECONFIGURE WITH OVERRIDE
GO
-- To enable the xp_cmdshell component.
EXEC sp_configure 'xp_cmdshell', 1
GO
RECONFIGURE WITH OVERRIDE 
GO
-- Revert back the advance option
EXEC sp_configure 'show advanced options', 0
GO 
RECONFIGURE WITH OVERRIDE 
GO

Затем вы можете использовать следующую команду для выполнения пакета и передачи значения переменной в качестве параметра:

DECLARE @SQLQuery AS VARCHAR(2000)

DECLARE @ServerName VARCHAR(200) = 'ARSHAD-LAPPY' 

SET @SQLQuery = 'DTExec /FILE ^"E:\DataTransfer.dtsx^" '
SET @SQLQuery = @SQLQuery + ' /SET \Package.Variables[ServerName].Value;^"'+ @ServerName + '^"'

EXEC master..xp_cmdshell @SQLQuery
GO

Ссылки

Полезные ссылки

...