如何通过命令行执行dtsx包

时间:2012-01-09 10:29:37

标签: visual-studio-2010 sql-server-2008 ssis

当我通过命令行执行dtsx包时,我触发了以下错误说

1.找不到连接,当找不到特定的连接元素时,连接集合会抛出错误

2.无法解析包“xxxxxxx”中对象的包路径。验证包路径是否有效

3.包路径引用了无法找到的对象,当尝试解析无法找到的对象的包路径时会发生这种情况

但是当我通过商业智能开发工作室运行包时,这种方法很好。

3 个答案:

答案 0 :(得分:32)

在我等待评论的答案时猜测一下,通常当一个程序包在BIDS中正常运行但从命令行不起作用时,我发现它与64/32位不兼容有关。

您使用Excel,Access或工作表下使用JET驱动程序的任何其他内容吗?这只适用于32位模式。

在64位操作系统上,默认情况下,在创建新的ODBC连接时,您将在64位命名空间中创建它,32位版本将无法访问该命名空间?

您使用的是Informix或UDB / DB2驱动程序吗?我只发现了32个版本。

从命令行运行包

dtexec是运行SSIS包的命令行机制。它有两种版本,适用于64位操作系统,两者都命名为dtexec,通常在Windows路径环境变量中引用32位

在64位操作系统上,64位的默认路径为"c:\Program Files\Microsoft SQL Server\100\DTS\Binn\DTExec.exe"

仍然在64位操作系统上,32版本的路径为"c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe"

要运行位于C:\ Src \ MyProject \ MyProject中的名为FooBar.dtsx的包,调用将是

"c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" /file C:\Src\MyProject\MyProject\FooBar.dtsx

如果该软件包存在于MyProject文件夹中的SQL Server(DEVSQL01)上,则这将是运行相同软件包的调用。

"c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" /SQL \MyProject\FooBar /SERVER DEVSQL01

编辑

要应用配置,您需要指定/CONF选项

"c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" /file C:\Src\MyProject\MyProject\FooBar.dtsx /CONF C:\FooBar.dtsConfig

看看你的评论,我们的用法之间的唯一区别是你用双引号包装了所有内容。尝试没有前面和后面的引用。

答案 1 :(得分:1)

在文本下方键入以调用SSIS包

dtexec / f / set \ package.variables [Variable];值

示例: - dtexec / f E:\ test_package \ test_package \ Package.dtsx / set \ package.variables [id]; 1

enter image description here

参考Ways to execute SSIS package

答案 2 :(得分:0)

/ SQL选项适用于部署到MSDB的软件包 - >服务器名\ StoredPackages \ MSDB \