如何通过命令行传递SSIS包的平面文件及数据库连接参数?
在命令行运行SSIS包并传递平面文件与数据库连接参数
没问题,我来帮你搞定这个SSIS包命令行传参的事儿!你已经摸清楚数据库连接的参数传递方法了,其实平面文件的思路完全一致——都是借助DTExec的/set参数,直接指定连接管理器的属性值就行。
先帮你把之前的数据库连接示例补全(你给的命令里引号没闭合,得修正下):
DTExec.exe /F "<你的SSIS包完整路径>" /set \package.connections[MyDB].properties[ServerName];SS2K8SV01_Prod
接下来重点说平面文件连接的传参:平面文件连接最常用的需要动态指定的属性就是FilePath(文件路径),假设你包里的两个平面文件连接分别叫SourceFlatFile和DestinationFlatFile,那把它们的路径参数加进命令里就行,最终命令大概是这样:
DTExec.exe /F "<你的SSIS包完整路径>" ^ /set \package.connections[MyDB].properties[ServerName];SS2K8SV01_Prod ^ /set \package.connections[SourceFlatFile].properties[FilePath];C:\Input\SourceData.csv ^ /set \package.connections[DestinationFlatFile].properties[FilePath];C:\Output\ResultData.txt
注:命令里的
^是Windows命令行的换行转义符,方便阅读;如果要写在一行里,直接去掉^把所有内容连起来就行。
还有几个小细节要注意:
- 平面文件连接的名称必须和SSIS包中定义的完全一致,大小写是敏感的,别写错了
- 如果文件路径里包含空格,一定要用双引号把路径括起来,比如:
"C:\My Folder\With Spaces\Data.csv" - 除了FilePath,如果你需要修改平面文件的其他属性(比如
Format、ColumnNamesInFirstDataRow),也可以用同样的/set语法,替换后面的属性名就行
内容的提问来源于stack exchange,提问作者HadoopAddict
相关产品推荐
相关产品推荐

