bat调用ssis的dtsx 32位模式设置

0
各位好,我的ssis版本为64位,然后office版本为32位,现在我用ssis2012将excel入库,方式是用bat调用sql的dtsx,代码如下:
cd D:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn
dtexec /file "D:\SSIS_TEST\参数test\参数test\Package.dtsx"> d:\testlog.log

手动执行dtsx是可以的,bat执行默认是用64位运行的,如何设置以32未运行,参数应该怎么设置,我通过bat执行报错如下:

Microsoft (R) SQL Server 执行包实用工具
Version 11.0.2100.60 for 64-bit
版权所有(C) Microsoft Corporation。保留所有权利。

开始时间: 9:30:08
进度: 2014-05-15 09:30:08.70
源: 数据流任务
正在验证: 0% 完成
进度结束
错误: 2014-05-15 09:30:08.71
代码: 0xC0209303
源: Package 连接管理器“Excel 连接管理器”
说明: 所请求的 OLE DB 访问接口 Microsoft.ACE.OLEDB.12.0 尚未注册。如果未安装 64 位驱动程序,则以 32 位模式运行包。错误代码: 0x00000000。
已获得 OLE DB 记录。源:“Microsoft OLE DB Service Components” Hresult: 0x80040154 说明:“没有注册类”。
错误结束
错误: 2014-05-15 09:30:08.71
代码: 0xC001002B
源: Package 连接管理器“Excel 连接管理器”
说明: "Microsoft.ACE.OLEDB.12.0" 访问接口在本地计算机上未注册。有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=219816
错误结束
错误: 2014-05-15 09:30:08.71
代码: 0xC020801C
源: 数据流任务 Excel 源 [2]
说明: SSIS 错误代码 DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。对连接管理器“Excel 连接管理器”的 AcquireConnection 方法调用失败,错误代码为 0xC0209303。可能在此之前已经发出错误消息,提供了有关 AcquireConnection 方法调用失败原因的详细信息。
错误结束
错误: 2014-05-15 09:30:08.71
代码: 0xC0047017
源: 数据流任务 SSIS.Pipeline
说明: Excel 源 未能通过验证,返回的错误代码为 0xC020801C。
错误结束
进度: 2014-05-15 09:30:08.71
源: 数据流任务
正在验证: 50% 完成
进度结束
错误: 2014-05-15 09:30:08.71
代码: 0xC004700C
源: 数据流任务 SSIS.Pipeline
说明: 一个或多个组件未能通过验证。
错误结束
错误: 2014-05-15 09:30:08.71
代码: 0xC0024107
源: 数据流任务
说明: 任务验证期间出错。
错误结束
DTExec: 已返回包执行 DTSER_FAILURE (1)。
开始时间: 9:30:08
完成时间: 9:30:08
占用时间: 0.156 秒
已邀请:
1

qjxiaopang - 懒惰是成功的最大绊脚石 2014-05-15 回答

dtexec 的参数是没有32位的模式,要以32位模式运行可以修改一下环境变量path,sql server x64默认安装的时候dtexec32和64是安装在不同的目录下的,在保证有32位dtexec的前提下,修改一下环境变量,如果是64位的sql server,那么path的值默认是64位在前面,32位在后面,只要把32的path变量修改到64位之前即可,D:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\;放在D:\Program Files\Microsoft SQL Server\110\DTS\Binn\;之前就可以了。
dtsx除了可以在代理服务下设置job,也可以使用bat去调用,也是可以的,谢谢!
0

梁勇 - 天道酬勤、上善若水。爱好商业智能 2014-05-15 回答

查找了相关文档,没有发现有参数可以设置通过在32bit下跑bat任务。

要回复问题请先登录注册