使用DuckDB ODBC驱动在Power Query导入CSV报错求助
解决方案:DuckDB ODBC + Power Query 多CSV批量加载报错问题
1. 定位具体错误来源
单文件加载正常但批量失败,大概率是某份文件的特定行存在格式异常(比如未闭合的引号、字段内未转义的换行符)。Power Query的ODBC报错信息模糊,建议用DuckDB CLI直接测试批量加载,获取精准错误:
-- 替换为你的CSV文件路径,支持通配符 CREATE TABLE temp_data AS SELECT * FROM read_csv_auto(glob('C:/your-csv-folder/*.csv'), encoding='UTF-8', quote_style='csv', header=true);
执行后会返回具体错误行号和原因,比如unterminated string,针对性修复即可。
2. 调整Power Query中的加载逻辑
不要让Power Query自动处理多文件批量,改用ODBC直接执行DuckDB的批量加载SQL,避免参数解析冲突:
- 连接字符串保持最简:
database=:memory: - 在Power Query的ODBC查询编辑器中执行以下SQL:
开启SELECT * FROM read_csv_auto(glob('C:/your-csv-folder/*.csv'), encoding='UTF-8', quote_style='csv', header=true, ignore_errors=false);ignore_errors=false能强制抛出具体错误,方便排查。
3. 适配网关环境要求
如果使用On-Premises Data Gateway:
- 确保网关服务器上安装了**与网关同位数(32/64位)**的最新版DuckDB ODBC驱动
- 网关服务运行账户需要拥有CSV文件所在目录的读取权限
- 批量加载时必须使用绝对路径,不要用相对路径或Power Query的动态路径引用
4. 升级ODBC驱动版本
旧版DuckDB ODBC驱动存在批量加载时错误信息丢失的兼容性问题,安装最新版驱动后重试。
内容的提问来源于stack exchange,提问作者Luuk_148
相关产品推荐
相关产品推荐

