来自64位系统上的SSISDB的SSIS 2012执行包

时间:2018-07-27 03:37:56

标签: sql-server-2012 ssis-2012

由于遇到以下错误,我无法执行我的软件包:

  

请求的OLE DB提供程序Microsoft.Jet.OLEDB.4.0不是   注册。如果未安装64位驱动程序,请在   32位模式。

我环顾四周,据我了解,这是因为excel或访问连接需要在32位模式下使用32位驱动程序进行。我知道在我的设计器中,我可以转到属性并将Run64BitRuntime选项更改为false。那不是问题。在我的设计师中运行正常。我的问题是从SSISDB运行程序包时如何指定它?

2 个答案:

答案 0 :(得分:1)

如果设置Run64BitRunTime在SSIS设计器中有效,并且在通过SQL Job Agent从SSISDB执行ssis-package时遇到问题。

您应该在32位运行时的步骤属性下设置一个复选标记。

enter image description here

答案 1 :(得分:1)

如果通过SSISDB存储过程执行程序包,则catalog.create_execution SP具有一个@use32bitruntime参数,该参数将直接从SSISDB以32位模式运行程序包。

--@use32bitruntime=True will enable 32-bit mode
Declare @execution_id bigint
EXEC [SSISDB].[catalog].[create_execution] @package_name=N'32BitPackage.dtsx', @execution_id=@execution_id OUTPUT, 
@folder_name=N'Test Folder', @project_name=N'Test Project', @use32bitruntime=True, @reference_id=Null
Select @execution_id

--parameter/logging configuration
DECLARE @var0 smallint = 1
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id,  
@object_type=50, @parameter_name=N'LOGGING_LEVEL', @parameter_value=@var0

--run package
EXEC [SSISDB].[catalog].[start_execution] @execution_id

GO