【问题标题】:SSIS can't use variables (Flat File > OLE DB Command), Must declare the scalar variable "@"SSIS 不能使用变量(平面文件 > OLE DB 命令),必须声明标量变量“@”
【发布时间】:2012-03-12 18:39:01
【问题描述】:

抱歉,我是 SSIS 菜鸟,我正在努力尝试导入平面文件并执行 OLE DB 命令,同时在 SqlCommand 中包含一个变量。

您可以看到我的查询以及包含已定义变量的尝试。错误显示如下:

必须声明标量变量“@”我明白错误在说什么,但经过数小时的搜索,我无法弄清楚如何在 OLE DB 命令中使用变量。

提前感谢您的帮助。

【问题讨论】:

  • 有些命令需要你使用“?”代替变量(调用您的参数“0”、“1”、“2”等),以及其他@variable 语法。确保您也将变量映射到您的参数。
  • 绝对尝试过(使用 ? 代替变量名)。问题是我必须映射那个?到输入列,并且从输入列下拉列表中看不到我的任何变量。只是来自平面文件源的列...
  • 看起来派生列转换可能是我正在寻找的。​​span>
  • 您在正确的轨道上,使用派生列将变量注入数据流。此外,如果您在意,使用 OLE DB 命令不会获得很好的性能 - 它会导致它处理的所有行的单例更新。
  • 您可以在数据流之后对控制流使用“执行 SQL 命令”,并对整个数据集进行更新

标签: sql-server-2008 ssis oledb


【解决方案1】:

尝试将 ssis 变量 [user::ClientID] 放入派生列并将其添加到数据流中。您应该可以使用 ?并将该值分配给您的查询,就像数据流中的任何其他值一样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 2013-07-03
    • 1970-01-01
    相关资源
    最近更新 更多