如何在未使用 SQL 服务器代理作业安装 excel 的服务器上 运行 具有 excel 源的 SSIS 包
How to run an SSIS package having excel source on a server where excel is not installed using SQL Server Agent Job
我有一个 SSIS 包,它使用自定义查询读取数据并将其存储到目标 excel 源中。通过右键单击并选择 运行 包选项,我能够在未安装 excel 的服务器上成功 运行 SSIS 包。当我将相同的 SSIS 包添加到集成服务和 运行 包时,它仍然可以成功执行。但是,当我使用 SQL 服务器代理作业安排包时,它失败并出现以下错误:
"Executed as user: Username. Microsoft (R) SQL Server Execute Package Utility Version 10.50.2500.0 for 32-bit Copyright (C) Microsoft Corporation 2010. All rights reserved. Argument "Excel" 选项 "connection" 无效。命令行参数无效。步骤失败。"
SQL 服务器规格:SQL SERVER 2008 R2
作为 SQL 服务器代理作业执行。
尝试了以下方法:
1) 选中步骤菜单中执行选项选项卡下的'Use 32 bit'复选框,取消选中数据源选项卡中的所有复选框。出现以下错误:
"作为用户执行:用户名。Microsoft (R) SQL 服务器执行包实用程序版本 10.50.2500.0 for 32-bit 版权所有 (C) Microsoft Corporation 2010。保留所有权利。开始:9:44:03 PM 错误:2015-06-08 21:44:04.21 代码:0xC002F304 来源:文件系统任务文件系统任务描述:发生错误并显示以下错误消息:"The device is not ready. "。结束错误 DTExec:程序包执行返回 DTSER_FAILURE (1)。开始:9:44:03 PM 完成:9:44:04 PM 已用:1.219 秒。程序包执行失败。步骤失败。“
2) 创建了一个具有系统管理员、public、服务器管理员角色的代理帐户。将包建模为 运行 作为代理帐户。出现以下错误:
"Executed as user: Username. The process could not be created for step 1 of job (reason: 1314). The step failed."
命令行看起来几乎类似于以下内容:
/DTS "\File System\PackageName" /SERVER SERVERNAME /CONNECTION "InputFileConn.xlsx";"F:\Folder\InputFile.xlsx" /CONNECTION "OutputFileConn.xlsx 1";"F:\Folder\Output\OutputFile.xlsx" /CONNECTION "Excel Connection Manager 1";"\ "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:\Folder\Output\OutputFile.xlsx;Extended Properties=""EXCEL 12.0;HDR=YES"";\"" /CONNECTION "SERVERINSTANCE.DBName";"\"Data Source=ServerInstance;Initial Catalog=DatabaseName;Provider=SQLNCLI10.1;Integrated Security=SSPI;Auto Translate=False;Application Name=SSIS-Package-{D4E09BF5-DF25-3DE7-BCAE-B667C38F85B7}SERVERNAME\SQLSERVER.DatabaseName;\"" /X86 /CHECKPOINTING OFF /REPORTING E
是否需要在服务器中安装 excel 才能使 SQL 服务器代理作业正常工作?
根据上面的讨论,作业指的是 F 驱动器,但 F 与服务器上 运行 时预期的驱动器不同。
我有一个 SSIS 包,它使用自定义查询读取数据并将其存储到目标 excel 源中。通过右键单击并选择 运行 包选项,我能够在未安装 excel 的服务器上成功 运行 SSIS 包。当我将相同的 SSIS 包添加到集成服务和 运行 包时,它仍然可以成功执行。但是,当我使用 SQL 服务器代理作业安排包时,它失败并出现以下错误:
"Executed as user: Username. Microsoft (R) SQL Server Execute Package Utility Version 10.50.2500.0 for 32-bit Copyright (C) Microsoft Corporation 2010. All rights reserved. Argument "Excel" 选项 "connection" 无效。命令行参数无效。步骤失败。"
SQL 服务器规格:SQL SERVER 2008 R2 作为 SQL 服务器代理作业执行。
尝试了以下方法: 1) 选中步骤菜单中执行选项选项卡下的'Use 32 bit'复选框,取消选中数据源选项卡中的所有复选框。出现以下错误:
"作为用户执行:用户名。Microsoft (R) SQL 服务器执行包实用程序版本 10.50.2500.0 for 32-bit 版权所有 (C) Microsoft Corporation 2010。保留所有权利。开始:9:44:03 PM 错误:2015-06-08 21:44:04.21 代码:0xC002F304 来源:文件系统任务文件系统任务描述:发生错误并显示以下错误消息:"The device is not ready. "。结束错误 DTExec:程序包执行返回 DTSER_FAILURE (1)。开始:9:44:03 PM 完成:9:44:04 PM 已用:1.219 秒。程序包执行失败。步骤失败。“
2) 创建了一个具有系统管理员、public、服务器管理员角色的代理帐户。将包建模为 运行 作为代理帐户。出现以下错误:
"Executed as user: Username. The process could not be created for step 1 of job (reason: 1314). The step failed." 命令行看起来几乎类似于以下内容: /DTS "\File System\PackageName" /SERVER SERVERNAME /CONNECTION "InputFileConn.xlsx";"F:\Folder\InputFile.xlsx" /CONNECTION "OutputFileConn.xlsx 1";"F:\Folder\Output\OutputFile.xlsx" /CONNECTION "Excel Connection Manager 1";"\ "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:\Folder\Output\OutputFile.xlsx;Extended Properties=""EXCEL 12.0;HDR=YES"";\"" /CONNECTION "SERVERINSTANCE.DBName";"\"Data Source=ServerInstance;Initial Catalog=DatabaseName;Provider=SQLNCLI10.1;Integrated Security=SSPI;Auto Translate=False;Application Name=SSIS-Package-{D4E09BF5-DF25-3DE7-BCAE-B667C38F85B7}SERVERNAME\SQLSERVER.DatabaseName;\"" /X86 /CHECKPOINTING OFF /REPORTING E
是否需要在服务器中安装 excel 才能使 SQL 服务器代理作业正常工作?
根据上面的讨论,作业指的是 F 驱动器,但 F 与服务器上 运行 时预期的驱动器不同。