我有一个SSIS包,我在其中从csv读取数据并将其转储到excel文件(.xls)。起初,它不起作用,我不得不将SSIS项目的64位运行时属性更改为false以使其工作。
我需要从另一个为“Any CPU”输出构建的Windows服务调用此包。当我这样做时,我得到相同的64位运行时错误,包失败。我无法将服务的运行时更改为x86 / x64。是否有一个解决方案,以便我可以告诉包它需要在服务的32位运行时执行?
答案 0 :(得分:3)
尝试将此属性设置为false(在解决方案的属性上):
此外,还记得Dtexec,dtutil和SQL Server导入和导出向导都有64位和32位应用程序。请务必注意,如果您在32位环境中开发包并希望在64位环境中运行该包,则连接管理器需要符合64位。某些连接管理器(如Excel)仅在32位环境中工作。
答案 1 :(得分:0)
可以通过EXEC命令强制执行32位:
EXEC SSISDB.catalog.create_execution
@folder_name = @p_yourFolder,
@project_name = @p_yourProject,
@package_name = @p_yourProcess,
@reference_id = @v_yourReferenceId,
@use32bitruntime = 1, --To force 32 bit runtime
@execution_id = @r_SSISDB_ExecutionID OUTPUT;
或者通过Configuration \ Advanced属性中的SQL代理,您可以使用“以32位模式运行”复选框。