SSIS包失败,错误"如果未安装64位驱动程序,则以32位模式运行"

时间:2017-03-29 13:48:08

标签: sql-server ssis

尝试从SSMS中的Integration Services目录运行包时,我收到以下错误。我将64BitRuntime选项更改为FALSE,但仍然无效。下面的错误后面跟着一个错误,即无法与Excel connection manager建立连接。有什么建议吗?

  

包错误:请求的OLE DB提供程序Microsoft.Jet.OLEDB 4.0   没有注册。如果未安装64位驱动程序,请运行   以32位模式打包。错误代码:0x00000000

4 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

如果从作业执行SSIS包,则在作业配置中有一个选项复选框"启用32位"。

OR

如果您正在从BIDS或SSDT执行SSIS包,请转到项目属性=>配置=> debugging =>从" True"转到64BitRuntime到"错误"因为它默认设置为True。

答案 2 :(得分:0)

您正在尝试从SSISDB目录运行SSIS包,并且需要它处于32位模式。

这样的TSQL如下所示

DECLARE @execution_id bigint;
EXEC SSISDB.catalog.create_execution
    @package_name = N'Legacy_DataExport.dtsx'
,   @execution_id = @execution_id OUTPUT
,   @folder_name = N'Legacy_DataExport'
,   @project_name = N'Legacy_DataExport'
,   @use32bitruntime = True
,   @reference_id = NULL;
SELECT
    @execution_id;
DECLARE @var0 smallint = 1;
EXEC SSISDB.catalog.set_execution_parameter_value
    @execution_id
,   @object_type = 50
,   @parameter_name = N'LOGGING_LEVEL'
,   @parameter_value = @var0;
EXEC SSISDB.catalog.start_execution @execution_id;
GO

值得注意的是我们指定@use32bitruntime = True

的第一个EXEC的倒数第二个参数

从UI角度看,它看起来像

enter image description here

答案 3 :(得分:-1)

使用SSIS中内置的Excel连接管理器,程序包需要以32位模式运行。切换这个:

  

64BitRuntime选项为FALSE

仅允许SSDT以32位模式运行程序包,但它不会影响部署后的运行方式。从SSMS以32位模式运行它:

  • 如果您右键单击Integration Services目录中的包并点击执行,请转到对话框的高级选项卡并检查32位运行时。
  • 如果您通过SQL代理作业执行它。在该步骤中,转到配置>高级并检查32位运行时。