我正在尝试通过Powershell执行SSIS包。我也为它做了一些参数。我使用以下命令:
DTExec /ISSERVER "\SSISDB\folderB\Integration Services Project17\Package.dtsx" /SERVER "." /Envreference 2 /Par "$Project::ProjectParameter(Int32)";1 /Par "Parameter(Int32)";21 /Par "CM.sqlcldb2.SSIS_repro.InitialCatalog";ssisdb /Par "$ServerOption::SYNCHRONIZED(Boolean)";True
我用我需要的参数替换了参数,当我尝试执行它时,它告诉我参数CM.sqlcldb2.SSIS_repro.InitialCatalog
不存在。我在互联网上找到了这个参数与Connection Manager
相关的地方。但是哪个连接管理器?有人知道那个参数的含义吗?
提前致谢
答案 0 :(得分:0)
运行DTExecUI
(dtexec的GUI)并打开其中的SSIS包。
在DTExecUI GUI中,您是否可以看到CM.sqlcldb2.SSIS_repro
作为连接管理器存在?
DTExecUI将使您能够手动编辑所有可编辑的参数/配置。
修改完所有参数/配置后,DtExecUI的最后一部分称为'命令行'将为您提供结果命令行,然后可以将其传递给`dtexec'。您可以复制并粘贴它并在PowerShell中使用(或任何地方)。
此外,参数有一些双引号,其中包含以$
开头的单词。 PowerShell会尝试将这些作为变量进行插值。
试试这个:
$dtexecParams = @(
'/ISSERVER', "\SSISDB\folderB\Integration Services Project17\Package.dtsx"
, '/SERVER', '.'
, '/Envreference', '2'
, '/Par', '"$Project::ProjectParameter(Int32)";1'
, '/Par', '"Parameter(Int32)";21'
, '/Par', '"CM.sqlcldb2.SSIS_repro.InitialCatalog";ssisdb'
, '/Par', '"$ServerOption::SYNCHRONIZED(Boolean)";True'
)
@dtexec $dtexecParams
...其中我用单引号括起了需要双引号的参数来停止插值。我还创建了一系列参数以传递到dtexec
命令,因此更容易看到传入的内容。