由于遇到以下错误,我无法执行我的软件包:
请求的OLE DB提供程序Microsoft.Jet.OLEDB.4.0不是 注册。如果未安装64位驱动程序,请在 32位模式。
我环顾四周,据我了解,这是因为excel或访问连接需要在32位模式下使用32位驱动程序进行。我知道在我的设计器中,我可以转到属性并将Run64BitRuntime选项更改为false。那不是问题。在我的设计师中运行正常。我的问题是从SSISDB运行程序包时如何指定它?
答案 0 :(得分:1)
如果设置Run64BitRunTime在SSIS设计器中有效,并且在通过SQL Job Agent从SSISDB执行ssis-package时遇到问题。
您应该在32位运行时的步骤属性下设置一个复选标记。
答案 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