我正在创建一个涉及where子句的SSIS包: WHERE effectiveDate> = @effectiveDate
因此,我在包级别定义了@effectiveDate
,以便我可以使用不同的连接从sql命令传入值。
在OLE DB源代码中,我选择了“SQL命令”,并将代码设置为 选择...... FROM ... WHERE effectiveDate> =?
当我点击'参数'时,会出现错误: '无法从SQL命令中提取参数。 blablabla ...使用“来自变量的SQL命令”......'
我试图避免使用变量中的SQL命令并尝试找到问题,因为我应该能够传入变量。
有人可以帮忙吗?非常感谢!!
答案 0 :(得分:0)
构建OleDbCommand时,您应该按照包期望的名称命名参数,例如
OleDbCommand cmd = new OleDbCommand( "select ... from... where... eff > @yourPkgPameterName");
cmd.Parameters.AddWithValue( "@yourPkgPameterName", whateverValueToSend );
对于基于SQL的参数已经有一段时间了,并且不记得AddWithValue()方法是否期望“@”...如果失败,可能需要尝试没有它。