使用Microsoft.ACE.OLEDB.12.0读取Excel时查询准备出错求助
解决OLE DB读取Excel的查询准备错误
核心问题与修正方案
你的查询报错核心原因是列名FUNCIONARIO/CREDOR DESCONTADO包含斜杠和空格这类特殊字符,OLE DB无法正确解析该列名。直接给特殊列名加上方括号包裹即可解决:
SELECT SUBSTRING(UGB,1,9) as EntityCode, SUBSTRING([FUNCIONARIO/CREDOR DESCONTADO],1,9) as NRCId, SUBSTRING([FUNCIONARIO/CREDOR DESCONTADO],11,75) as CustName, VALOR as ReceiptAmount FROM [SubmissionDetails$]
额外排查要点
- 确保Excel文件未被其他程序占用(比如正在打开的Excel窗口),OLE DB需要独占访问权限
- 检查Microsoft.ACE.OLEDB.12.0驱动版本(32位/64位)与SQL Server实例版本一致,避免兼容性问题
- 确认工作表名称
SubmissionDetails拼写完全正确,末尾的$必须保留 - 若是.xlsx格式的Excel,连接字符串需指定正确的版本参数,示例:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\yourfile.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES;"
内容的提问来源于stack exchange,提问作者Sugi Joshuva
相关产品推荐
相关产品推荐

