【问题标题】:SSIS passing flat file paths as command line parametersSSIS 将平面文件路径作为命令行参数传递
【发布时间】:2018-05-25 14:10:37
【问题描述】:

我有一个 ssis 包,它采用两个平面文件和一个数据库表作为连接。我想通过将这 3 个连接作为命令行参数传递来从命令行运行 ssis 包。我应该怎么打电话?

经过一些谷歌搜索后,我发现如果我们使用数据库作为连接,这是如何通过的。但不知道如何为平面文件传递连接参数。

DTExec.exe /F "<packagepath> /set \package.connections[MyDB].properties[ServerName];SS2K8SV01_Prod

【问题讨论】:

  • 你可以使用存储过程吗?我就是这样做的。像这样:docs.microsoft.com/en-us/sql/integration-services/…(还需要在包中的连接属性中设置参数为源)
  • 您想直接配置连接管理器还是使用 SSIS 变量驱动连接管理器的 ConnectionString 属性?
  • @billinkc : 我想直接配置连接管理器,然后将文件路径作为命令行参数传递
  • @Jacob :不,在我的情况下不能使用存储的 Proc。

标签: sql-server visual-studio ssis etl


【解决方案1】:

假设我有一个名为 FFCM 的平面文件连接管理器,我想将 ConnectionString 属性更新为 C:\ssisdata\output\B.txt

dtexec.exe 
/file Package2.dtsx 
/set 
\Package.Connections[FFCM].Properties[ConnectionString];C:\ssisdata\input\B.txt

这些是区分大小写的值,因此必须将连接管理器称为 FFCM。如果有 ffcm,这是行不通的。

如果你必须处理路径中的空格,老实说,重命名路径比处理它更容易,但我相信整个参数需要用双引号引起来,而不仅仅是分号后面的部分

dtexec.exe 
/file Package2.dtsx 
/set 
\Package.Connections[FFCM].Properties[ConnectionString];C:\ssisdata\input\B.txt
/set 
\Package.Connections[FFCM2].Properties[ConnectionString];C:\ssisdata\input\BC.txt
/set 
\Package.Connections[MyDB].Properties[ServerName];localhost

我如何确定 /set 之后的东西是什么

默认情况下,F4 将为您在 SSIS 编辑器中单击的任何内容打开“属性”窗口。查找给定对象的 PackagePath 属性并标识“基本”路径。

从那里,您将需要访问 Expressions 集合以识别您要设置的属性ConnectionString

因此我们将通过命令行设置完整路径为

\Package.Connections[FFCM].Properties[ConnectionString]

【讨论】:

    猜你喜欢
    • 2016-08-11
    • 2012-09-24
    • 1970-01-01
    • 2013-06-03
    • 2015-02-20
    • 2019-02-15
    • 2014-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多