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

如何将竖线分隔的RRF文件转为制表符格式并导入PostgreSQL

解决PostgreSQL导入RRF文件时的“unquoted new line found in data”错误

错误原因

你遇到的问题本质有两点:

  1. 用CSV模式导入制表符分隔文件,但数据中存在未被引号包裹的换行符——CSV模式要求字段内的换行必须被引号括起来,否则会被误判为新的记录行。
  2. 你的sed命令错误地将竖线替换成了两个空格,而非真正的制表符,导致分隔符不符合预期。

方案1:直接导入竖线分隔的RRF文件(推荐,无需转换格式)

跳过格式转换步骤,直接让PostgreSQL处理竖线分隔的原文件,避免转换过程引入的问题:

-- 替换为你的实际文件路径
\copy demo_table from '/full/path/to/demo_text.RRF' DELIMITER '|' HEADER;

如果原文件中存在带换行的字段,且这些字段被引号包裹,添加QUOTE参数即可:

\copy demo_table from '/full/path/to/demo_text.RRF' DELIMITER '|' QUOTE '"' HEADER;

方案2:正确转换为制表符文件后导入

如果必须转成制表符格式,按以下步骤操作:

  1. 用sed正确替换竖线为制表符:

    sed 's/|/\t/g' demo_text.RRF > demo_text.TAB
    

    这里的\t才是真正的制表符,而非两个空格。

  2. 用TEXT模式导入(而非CSV):
    PostgreSQL默认的导入模式是TEXT,它允许字段内存在换行(只要你没有指定严格的CSV规则),命令如下:

    \copy demo_table from '/full/path/to/demo_text.TAB' DELIMITER E'\t' HEADER;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 07:05:08