首页 > 解决方案 > 导出带有换行符的文本字段

问题描述

我的 PostgreSQL 数据库中有一个包含换行符的文本字段。我想将该字段逐字导出到文本文件中。但是,如果没有将换行符编码为\n.

目前我只是在文本编辑器中使用\copy并手动进行搜索和替换。\n

标签: postgresqlpsql

解决方案


COPY 的第一项工作是生成可以准确重新加载的输出。但听起来你想要相反的结果,你想通过查看最初如何分组到记录中的行来产生你无法知道的输出。

因此,您很可能必须进行某种后处理。您可以使用文本输出格式并将 \n 更改为文字换行符,或者您可以使用 csv 输出格式然后删除引号。在这两种情况下,可能还有其他必须处理的转义/引用的特殊字符。

另一种方法是在 COPY 之前而不是之后分解数据:

\COPY (select unnest(string_to_array(col1,E'\n')) from foo) TO ... 

推荐阅读