我被要求调查一下为什么通过 SQL Server 2012 运行的 SSIS 包无法正常工作。我打开包裹发现错误是由于无法读取
.xlsx
文件造成的。
作为测试,我手动打开该文件,将其另存为
.xls
文件,然后更改连接器以将其读取为 97-2003 excel 文件 - 并且工作正常。我将 .xls
重新保存为 .xlsx
(我想也许原来的版本已经损坏了),2007 年的连接再次失败。
查看错误日志,我看到一个错误:
Hresult:0x800004005 描述:“找不到可安装的 ISAM”
环顾四周,我没有找到太多运气。有谁知道这里的问题是什么?我验证了文件的权限是正确的,它没有被另一个进程锁定,路径是正确的。不知道我还能做什么。我猜这与使用 SQL Server 2012 运行此程序的过时服务器有关。
连接字符串为:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\<my server>\shared\<the folder>\<filename>.xlsx;Extended Properties="Excel 12.0 XML;HDR=NO";
解决方案是 ACE 可再发行组件已损坏或损坏。我什至无法卸载它,我必须通过添加/删除程序修复它,然后卸载它,然后下载最新的 32 位版本并安装,然后就修复了它。安装的版本似乎也与微软版本不匹配。
我从此处下载了 Microsoft Access Database Engine 2016 Redistributable:https://www.microsoft.com/en-us/download/details.aspx?id=54920
版本: RTM 发布日期: 2020 年 8 月 11 日
安装了32位版本。