数据流任务:错误:Excel 源在预执行阶段失败并返回错误代码 0xC02020E8。
数据流任务:错误:打开“Sheet$”的行集失败。检查数据库中是否存在该对象。
运行失败包的作业按顺序运行其他三个包。包 1 和 3 失败,包 2 和 4 工作正常。所有包都使用不同的 Excel 电子表格。
不 - 我无法让提供商向我们提供 .csv 文件(嗯 - 我们正在询问,但不能保证他们会这样做)。
否 - 我不会在 SSIS 服务器上安装 Excel,以便我们的 BI 开发人员可以编写程序将 .xlsx 转换为 .csv - 但我正在考虑安装 Python,以便他们可以做到这一点
否 - 我不会将运行作业的服务帐户保留在服务器上的管理员组中
我所查看的所有内容都表明,这是 Access 数据库驱动程序(我们使用 ACE 12 驱动程序 - 现在我们使用 ACE 16 驱动程序 - 64 位)正在写入其临时数据的某些临时文件夹的权限问题服务帐户无权访问该服务。
我已向运行作业的服务帐户授予完全控制权(这与运行 SSIS 服务的服务帐户不同)
C:\Users
c:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp
c:\users\Default\AppData\Local\Temp
c:\windows\serviceprofiles\localservice\AppData\Local\Temp
c:\Windows\Temp
没有喜悦。
我还使用代理帐户凭据在本地登录到服务器,以便创建该代理帐户的用户配置文件。该作业运行一次,然后每次都失败。
唯一有效的方法是授予代理管理员对服务器的访问权限。不用说 - 这似乎不是一件好事。
有什么想法吗?
是的 - 我确信 .xlsx 文件没有更改其格式 - 也没有更改数据所在的工作表名称 - 正如我所说,手动启动时包运行良好。当 SQL 代理作业运行它时,它就会失败 - 并且只有当代理不在本地服务器管理员组中时才会失败。
最后,我们尝试过使用32位模式,但无法同时安装32位和64位的驱动程序。
SQL Server 2016、Windows Server 2012 R2
检查系统日志中是否有任何 COM 服务器应用程序错误条目。如果您找到该条目,那么。
您有 4 个步骤,并且都在不同的 Excel 文件上执行相同的操作,对吗? 其中两个步骤对于同一用户成功,另外两个步骤失败,对吗?
我将采取的故障排除步骤是。
我刚刚完成了 Process Monitor 的故障排除。似乎有一种叫做办公室缓存的东西,而且它的位置是难以捉摸的……至少可以说。对于现代 Windows 版本中的默认配置文件应为 c:\Users\Default\AppData\Local\Microsoft\Windows\NetCache\Content.MSO。绝对不行...
对我们有用的是将代理帐户完全控制权授予 C:\Users\Default\
在这里找到答案:如果行太多,ssis excel导入失败