我有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
答案 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组件。