[英]Error when running SSIS package with parameter - dtexec
当我运行带有参数但没有参数的SSIS包时,我遇到了问题。
可能是什么问题呢?
不带参数的查询
Begin
declare @query varchar(4000) =
'dtexec /Project C:\SSIS\DUTPackages.ispac /Package cityTransfer.dtsx /decrypt password1!'
exec xp_cmdshell @query
End
用参数查询
Begin
declare @p_cityId varchar(10) = '%'
declare @p_count varchar(10) = '-1'
declare @query varchar(4000) =
'dtexec /Project C:\SSIS\DUTPackages.ispac /Package cityTransfer.dtsx /decrypt password1!'
+ ' /SET \Package.Variables[$Package::p_cityID];''' + @p_cityId + ''''
+ ' /SET \Package.Variables[$Package::p_count];''' + @p_count + ''
exec xp_cmdshell @query
End
使用参数运行查询时出现错误
[OLE DB Source [25]] Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E10.
[SSIS.Pipeline] Error: OLE DB Source failed the pre-execute phase and returned error code 0xC0202009.
我认为您可能只需要添加一些双引号并删除几个单引号即可。 尝试这个:
Begin
declare @p_cityId varchar(10) = '%'
declare @p_count varchar(10) = '-1'
declare @query varchar(4000) =
'dtexec /Project C:\SSIS\DUTPackages.ispac /Package cityTransfer.dtsx /decrypt password1!'
+ ' /SET "\Package.Variables[$Package::p_cityID];' + @p_cityId + '"'
+ ' /SET "\Package.Variables[$Package::p_count];' + @p_count + '"'
exec xp_cmdshell @query
End
在某些情况下,仅参数需要用“。”引起来。因此,请尝试- '" + @p_cityId + "'
, @p_count
相同
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.