Передать параметры из задания агента SQL Server в пакет служб SSIS на установленном значении шага

У меня есть пакет SSIS, который будет запускаться в другой базе данных и имеет некоторые параметры, которые будут зависеть от среды, в которой он будет работать (имя базы данных, FilePath для файла excel, ServerName и т. д.), и я хочу установить их в таким образом, когда я отправляю пакет третьей стороне, они могут настроить эти параметры и запустить пакет в задании SQL с помощью агента SQL-сервера (я думал, что это самый простой способ запустить пакет SSIS вручную).

Для этого я «параметризовал» нужные мне значения в SSIS введите здесь описание изображения

эти параметры задаются на уровне пакета.

и то, что я пытаюсь сделать сейчас, - это передать эти параметры с вкладки данных шага настройки задания агента SQL Server.

введите здесь описание изображения

Я получаю эту ошибку при запуске задания:

Executed as user: NT Service\SQLSERVERAGENT. Microsoft (R) SQL Server Execute Package Utility  Version 14.0.2027.2 for 32-bit  Copyright (C) 2017 Microsoft. All rights reserved.    
Started:  9:47:32 PM  
Error: 2020-04-05 21:47:32.91     
Code: 0xC001F016     
Source: Package      
Description: Changing the Value of a variable failed because it is a parameter variable. Parameter variables are read-only.  End Error  
DTExec: Could not set \Package.Variables[Database_Name].Value value to dev.  
Started:  9:47:32 PM  
Finished: 9:47:32 PM  
Elapsed:  0.125 seconds.  
The package execution failed.  The step failed.

Это важная строка:

DTExec: Could not set \Package.Variables[Database_Name].Value value to dev.  

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

обобщить; Мне нужно отправить параметры из агента сервера sql в пакет SSIS. Плюс*: я также открыт для дополнительных рекомендаций о способе легкого выполнения пакетов SSIS для третьей стороны без знания SQL.

P.S. Мне рекомендовали использовать каталог, но можно ли будет использовать его, когда третья сторона должна использовать пакет в своей среде? т.е. сможет ли он без visual studio "развернуть" пакет?


person Baldie47    schedule 05.04.2020    source источник
comment
Package.Variables Это переменная, а не параметр. То, что вы делаете, похоже на попытку установить значение переменной, объявленной внутри SP, и, следовательно, ошибку. Если бы вы использовали каталог SSIS, вам было бы очень просто провести здесь время.   -  person Larnu    schedule 05.04.2020
comment
Итак, я мог бы исправить это, используя переменные внутри пакета вместо параметров? и более важный вопрос, так как я могу использовать каталог для меня. как это будет работать для третьей стороны? может ли он установить каталог и загрузить пакет, не имея визуальной студии?   -  person Baldie47    schedule 06.04.2020


Ответы (1)


Я также получал эту ошибку:

DTExec: не удалось установить значение \Package.Variables[.....].Value на ....

В моем случае я использовал VS2019. Целевой сервер проекта решения — 2019, что отличается от нашего тестового SQLServer (2017). После изменения целевого сервера на 2017 параметры, как и ожидалось, были переданы в dtsx.

person Yogi    schedule 09.09.2020