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

DuckDB查询含换行符CSV文件的问题求助

解决DuckDB读取含换行符CSV时的未终止引号报错及还原换行符问题

针对DuckDB读取含换行符的CSV文件时出现的“未终止双引号”报错,同时需要保留原换行符的需求,以下是两种可行方案:

方案1:使用read_csv手动指定解析参数

read_csv_auto的自动参数推断可能误将引号内的换行识别为行终止符,改用read_csv并明确设置CSV解析规则,能精准处理带换行的字段:

SELECT * FROM read_csv(
  '目标文件路径.csv',
  quote='"',          -- 指定字段包裹符为双引号
  escape='"',         -- 遵循CSV标准:用双引号转义字段内的双引号
  newline='auto',     -- 自动识别文件中的换行符类型
  header=true         -- 若文件包含表头需开启此选项
);

此方法会将引号内的换行保留为字段内的原生内容,既不会触发报错,也无需手动进行转义/反转义操作。

方案2:给read_csv_auto补充关键参数

如果习惯使用read_csv_auto,只需补充指定quote和escape参数,即可修正自动推断的错误逻辑:

SELECT * FROM read_csv_auto(
  '目标文件路径.csv',
  quote='"',
  escape='"',
  newline='auto'
);

read_csv_auto会基于指定的规则解析文件,正确识别引号包裹的含换行字段,同时完整保留原换行符。

关键原理说明

CSV规范中,双引号包裹的字段内允许包含换行符,解析时需通过quote参数识别字段边界,escape参数处理字段内的双引号转义。之前修改换行符选项无效,是因为该选项控制的是整个行的终止符,而非字段内的换行识别逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 22:28:15