如何将包含换行符的postgres数据导出到CSV而不破坏多行记录

时间:2013-08-30 14:11:46

标签: postgresql psql

我正在尝试将数据从postgresq导出到CSV文件,但是当我在数据库中有文本换行符时,导出的数据将在几行中被破坏,这使得读取CSV文件变得更加困难,而不是说大多数应用程序都无法正确加载它。

以下是我现在导出数据的方法:

 PRESQL="\pset format unaligned
 \pset fieldsep \",\"
 \pset footer off
 \o 'out.csv'
 "
 cat <(echo $PRESQL) $QUERYFILE | psql …
除非你在文本字段中有换行符,否则很好。任何hack都可以让我生成一个非常简单的解析CSV文件(每行一个记录)?

2 个答案:

答案 0 :(得分:2)

错误地认为CSV可以被强制每行一行。 RFC声明清楚,换行符用双引号括起来。

答案 1 :(得分:1)

您可以尝试使用replace()或regexp_replace()函数。

以下SO问题的答案应该给你一个想法:How to remove carriage returns and new lines in Postgresql?