使用参数运行SSIS包时出错-dtexec

时间:2018-09-05 13:40:26

标签: sql-server ssis

当我运行带有参数但没有参数的SSIS包时,我遇到了问题。

可能是什么问题?

不带参数的查询-

 开始

声明@query varchar(4000)=
'dtexec / Project C:\ SSIS \ DUTPackages.ispac / Package cityTransfer.dtsx / decrypt password1!'

exec xp_cmdshell @查询

结束
 

使用参数查询-

 开始
声明@p_cityId varchar(10)='%'
声明@p_count varchar(10)='-1'

声明@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 @查询

结束
 

使用参数-

运行查询时出现错误
  [OLE DB源[25]]错误:SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80040E10。
[SSIS.Pipeline]错误:OLE DB源在预执行阶段失败,并返回了错误代码0xC0202009。
 

2 个答案:

答案 0 :(得分:0)

我认为您可能只需要添加一些双引号并删除几个单引号即可。试试这个:

margin 0 auto;

答案 1 :(得分:0)

在某些情况下,仅参数需要用“。”引起来。因此,请尝试-'" + @p_cityId + "',对于@p_count也是相同的