Как добавить параметры и менеджеры conn в сценарий оболочки Power для SSIS - PullRequest
0 голосов
/ 08 февраля 2019

Ниже приведен мой сценарий Power Shell для двух параметров: 1. Среда 2. ProcessData, если я выполню это в командной строке, я получаю сообщение об ошибке ниже. Набор параметров недействителен.Как я могу решить эту проблему, пожалуйста, помогите, это из-за запятой в источнике данных.Источник данных = ххххххх, 3181;

dtexec /ISServer "\SSISDB\DEV\PopulateData\PopulateData.dtsx" /server abbaa.com,3181 /Par "$ServerOption::SYNCHRONIZED(Boolean)";True /SET \Package.Variables[User::Environment].Properties[Value];"[sql1811174] Dev" /SET \Package.Variables[User::ProcessData].Properties[Value];"Data Source=xxxxxxx,3181;Initial Catalog=xxx11;Provider=SQLNCLI11.1;Integrated Security=SSPI;"

1 Ответ

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

Основная проблема - точка с запятой, которую вы вводите для User::ProcessData, интерпретируется как разделитель для параметров командной строки, а не как значение внутри строки.

Вы можете проверить это поведение, добавив точку с запятой к первому свойству

dtexec /ISServer "\SSISDB\DEV\PopulateData\PopulateData.dtsx" /server abbaa.com,3181 /Par "$ServerOption::SYNCHRONIZED(Boolean)";True /SET \Package.Variables[User::Environment].Properties[Value];"[sql1811174];Dev"

, которое сгенерирует

Аргумент "" \ Package.Variables [Пользователь :: Environment] .Properties [Value] [sql1811174] ;;Dev "" для опции "set" недопустим.

Совершенно неинтуитивный подход к экранированию заключается в добавлении косой черты в двойные кавычки для значений параметров и их удвоении.

dtexec /ISServer "\SSISDB\DEV\PopulateData\PopulateData.dtsx" 
/server abbaa.com,3181 /Par "$ServerOption::SYNCHRONIZED(Boolean)";True 
/SET \Package.Variables[User::Environment].Properties[Value];\"[sql1811174] Dev\" 
/SET \Package.Variables[User::ProcessData].Properties[Value];"\"Data Source=xxxxxxx,3181;Initial Catalog=xxx11;Provider=SQLNCLI11.1;Integrated Security=SSPI;\""

Почему я могу использовать простую двойную кавычку для Environment, но не для ProcessData?Отличный вопрос и понятия не имею.Я предполагаю, что это что-то со сложностью аргумента + повлияло на предыдущие аргументы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...