我正在尝试将数据从postgresq导出到CSV文件,但是当我在数据库中有文本换行符时,导出的数据将在几行中被破坏,这使得读取CSV文件变得更加困难,而不是说大多数应用程序都无法正确加载它。
以下是我现在导出数据的方法:
PRESQL="\pset format unaligned
\pset fieldsep \",\"
\pset footer off
\o 'out.csv'
"
cat <(echo $PRESQL) $QUERYFILE | psql …
除非你在文本字段中有换行符,否则很好。任何hack都可以让我生成一个非常简单的解析CSV文件(每行一个记录)?
答案 0 :(得分:2)
错误地认为CSV可以被强制每行一行。 RFC声明清楚,换行符用双引号括起来。
答案 1 :(得分:1)
您可以尝试使用replace()或regexp_replace()函数。
以下SO问题的答案应该给你一个想法:How to remove carriage returns and new lines in Postgresql?