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

如何在PostgreSQL COPY语句中保留换行符?

解决PostgreSQL COPY导出保留换行符的问题

问题出在你用%L格式化_page.content时,PostgreSQL会自动转义字符串里的特殊字符(包括换行、回车符),把实际的换行转换成明文的\r\n,导致导出文件不符合预期。

你可以改用参数化查询的方式,通过USING子句传递_page.content的值,避免转义处理:

LOOP
  EXECUTE FORMAT('COPY (SELECT $1) TO %L', _directory || '/pages/' || _page.id || '.md')
  USING _page.content;
END LOOP;

修改后,COPY会直接读取_page.content的原始值,保留其中的换行符,导出的Markdown文件就能得到你期望的格式。

如果你的content列存储的是带\r(回车符)的Windows风格换行,导出后在类Unix系统下可能会显示多余的^M符号,这种情况可以先去掉回车符再导出:

LOOP
  EXECUTE FORMAT('COPY (SELECT $1) TO %L', _directory || '/pages/' || _page.id || '.md')
  USING replace(_page.content, E'\r', '');
END LOOP;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 08:40:03