You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

旧SSIS包无法读取XLSX文件,但XLS文件可正常读取

解决SQL Server 2012 SSIS包读取.xlsx文件时“找不到可安装的ISAM”问题

问题根源

SQL Server 2012所在的老旧服务器大概率存在Microsoft ACE OLEDB驱动缺失、版本不匹配,或连接字符串格式错误的情况,导致无法正常解析.xlsx文件。

具体解决步骤

1. 安装/匹配对应位数的Microsoft ACE OLEDB驱动

  • SSIS包的运行位数(32/64位)必须与ACE驱动版本完全一致:
    • 若SSIS以32位模式运行,安装32位Microsoft Access Database Engine 2010 Redistributable
    • 若以64位模式运行,安装64位版本
  • 注意:如果服务器已安装32位Office,直接安装64位ACE驱动会报错,需使用被动安装命令:
    AccessDatabaseEngine_x64.exe /passive
    

2. 修正连接字符串格式

原连接字符串存在格式隐患,调整为以下标准写法:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\<my server>\shared\<the folder>\<filename>.xlsx;Extended Properties="Excel 12.0 Xml;HDR=NO;IMEX=1";

关键调整点:

  • 共享路径中的单反斜杠改为双反斜杠(\\),避免转义错误
  • 添加IMEX=1参数,强制以混合模式读取数据,规避数据类型冲突引发的隐性问题
  • 确保Extended Properties内部参数用分号分隔,引号嵌套逻辑正确

3. 匹配SSIS运行模式与驱动位数

在SQL Server数据工具(SSDT)中调整项目运行模式:

  • 右键SSIS项目 → 属性 → 调试 → 找到Run64BitRuntime选项
  • 若安装32位ACE驱动,取消勾选;若安装64位驱动,勾选该选项

4. 补充权限验证

  • 确认SQL Server代理服务(若包由代理执行)的运行账户对目标共享文件夹拥有读写权限
  • 检查服务器临时文件夹(C:\Windows\Temp)权限,确保ACE驱动运行时可读写临时文件

内容的提问来源于stack exchange,提问作者Djones4822

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 00:42:42