【问题标题】:SSIS Package cannot find parameter in command lineSSIS 包在命令行中找不到参数
【发布时间】:2017-05-31 16:30:23
【问题描述】:

我有一个需要参数化查询的 DTSX 文件。查询发生在此处的“DataFlowTask”中:

这里调用数据流任务:

这里是参数:

和查询:

项目构建 - 如果我删除参数,它运行良好。但是,我在设置参数时遇到问题。我已经尝试了大概一百种组合,包括:

dtexec /f "D:\[location]\ExportOrdersWithParameter.dtsx" /set "\Package.Variables[OrderDate].Value";"1/1/2000"
dtexec /f "D:\[location]\ExportOrdersWithParameter.dtsx" /set "\Package.Variables[OrderDate].Value";"1/1/2000"
dtexec /f "D:\[location]\ExportOrdersWithParameter.dtsx" /set "\Package.Variables[User::OrderDate].Value";"1/1/2000"
dtexec /f "D:\[location]\ExportOrdersWithParameter.dtsx" /set "\Package.Variables[$Package::OrderDate].Value";"1/1/2000"
dtexec /f "D:\[location]\ExportOrdersWithParameter.dtsx" /set "\Package\DataFlowTask.Variables[$Package::OrderDate].Value";"1/1/2000"
dtexec /f "D:\[location]\ExportOrdersWithParameter.dtsx" /set "\Package\DataFlowTask.Variables[User::OrderDate].Value";"1/1/2000"
dtexec /f "D:\[location]\ExportOrdersWithParameter.dtsx" /set "\Package.Variables[OrderDate].Value;1/1/2000"

还有各种其他组合。错误是“进程配置未能在...的包路径设置目标”或“包路径引用了无法找到的对象”

我完全迷失了——我错过了什么?

【问题讨论】:

  • 我总是使用字符串数据类型作为日期参数,从来没有遇到过这样的问题。把变量的数据类型改成'yyyy-mm-dd'格式的字符串,试试看。
  • 好吧,你让我开始了一组不同的搜索,我发现问题实际上是你不能通过命令行设置参数 - 你必须使用变量。谢谢。
  • 是的,在 OLE DB 源中的 SQL 命令中,它被称为 Parameters,但您实际上需要选择一个变量。

标签: visual-studio ssis


【解决方案1】:

正如您的屏幕截图所示,OrderDate 是一个包Parameter,而不是一个变量。所以,要用 dtexec 传递它,你需要这样调用它

dtexec /f "D:\[location]\ExportOrdersWithParameter.dtsx" /Parameter 
"$Package::OrderDate(DateTime)";2008-12-22

您的系统如何解析 DateTime 值可能存在问题;也许,您最好将日期指定为 YYYYMMDD 或 YYYY-DD-MM。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-29
    相关资源
    最近更新 更多