用于运行SSIS 2013包的DTEXEC.exe

时间:2016-01-28 12:53:38

标签: sql-server visual-studio command-line ssis sql-server-2012

我有SQL Server 2012,Visual Studio 2013,我正在尝试使用dtexec通过命令行运行.dtsx。

如果我使用:dtexec.exe /file "C:\MyFolder\sub folder \the ssis Package .dtsx" 将返回:

  

由于错误0XC0010014无法加载包。这发生在   CPackage ::从XML加载失败。

但是,如果我使用:

"C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\DTExec.exe" /file "C:\MyFolder\sub folder \the ssis Package .dtsx"

我可以看到任务的一部分正在运行,因为它警告我在我的任务中修剪两列(我在SSIS中得到的警告相同,但一切正常)。

  

警告:2016-01-28 13:41:49.53代码:0x802092A7来源:资料   Flow任务OLE DB目标[99]描述:可能发生截断   由于从数据流列“ISSUER_OTHER_NAME”插入数据   数据库列“ISSUER_OTHER_NAME”的长度为124,长度为   68。

之后,我得到了:

  

错误:2016-01-28 13:41:49.68代码:0xC000F427来源:执行   进程任务描述:在SQL之外运行SSIS包   必须安装服务器数据工具执行集成的执行流程任务   服务或更高。结束错误DTExec:返回包执行   DTSER_SUCCESS(0)。

看起来其他人在没有安装任何Integration Services的情况下在不同的主机上拥有此功能。但我在同一个地方使用它,甚至警告都在工作,因为我可以看到一些列的名称。 我的猜测是dtexec.exe的版本,你可以看到我从120\dts\binn\文件夹中获取它。 这是我的SSIS使用的正确方法吗? 请参阅下面的我的SSIS版本和SQL Server enter image description here enter image description here

3 个答案:

答案 0 :(得分:1)

我在VS2013中开发了一个SSIS包,并且针对SQL 2012部署了很多兼容性问题。对我有用的一致解决方案是安装SQL 2014并使用该版本的DTExec发布到SQL 2012。

答案 1 :(得分:0)

尝试使用x86文件夹而不是64位版本的C:\ Program Files(x86)\ Microsoft SQL Server \ 120 \ DTS \ Binn \从命令行运行32位版本。

答案 2 :(得分:-3)

这是许可证检查 - 您需要在计算机上至少安装SQL Server 2012的Integration Services组件。