【问题标题】:Can't pass in variables into OLE DB source command无法将变量传递到 OLE DB 源命令
【发布时间】:2013-12-17 21:19:22
【问题描述】:

我正在创建一个涉及 where 子句的 SSIS 包: WHERE EffectiveDate >= @effectiveDate

因此,我在包级别定义了@effectiveDate,以便我可以使用不同的连接从 sql 命令传递值。

在 OLE DB 源中,我选择了“SQL 命令”,并将代码作为 选择...从... WHERE 有效日期 >= ?

当我点击“参数”时,出现错误: '不能从 SQL 命令中提取参数。 blablabla...使用“变量中的SQL命令”...'

我试图避免使用变量中的 SQL 命令并尝试定位问题,因为我应该能够传入变量。

有人可以帮忙吗?非常感谢!!

【问题讨论】:

标签: ssis


【解决方案1】:

在构建OleDbCommand 时,实际上应该将参数命名为包所期望的,例如

OleDbCommand cmd = new OleDbCommand( "select ... from... where... eff > @yourPkgPameterName");

cmd.Parameters.AddWithValue( "@yourPkgPameterName", whateverValueToSend );

基于 SQL 的参数已经有一段时间了,不记得 AddWithValue() 方法是否期待“@”...如果失败,可能需要尝试不使用它。

【讨论】:

  • 您的回答对于 C# 是正确的,但这个问题是关于不使用 @ 变量命名法的 SSIS 执行环境。
  • @billinkc,我想那是你的反对票......但是用户随后明确地使用 select 引用了一个 OleDbCommand ?,所以,它是......获取数据的查询,或调用失败的报告.. 新手得分为 3?不会是最大的澄清。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-18
相关资源
最近更新 更多