Postgresql 带行分隔符的postgres副本
我有一个带列栏的桌子Postgresql 带行分隔符的postgres副本,postgresql,Postgresql,我有一个带列栏的桌子 foo --- bar 我使用Postgres的Copy命令 将select*从foo复制到带有分隔符“,”CSV头的“完整文件路径” 现在,如何传递自定义行分隔符?范例 row delimiter = _a_\n 我需要文件中的以下输出 bar_a_ somevalue_a_ somevalue_a_ somevalue_a_ 我不知道如何使用copy命令执行此操作。Postgres没有指定替代行分隔符的选项。您可以随时使用sed或您选择的语言进行后期处理,将换行符
foo
---
bar
我使用Postgres的Copy命令
将select*从foo复制到带有分隔符“,”CSV头的“完整文件路径”
现在,如何传递自定义行分隔符?范例
row delimiter = _a_\n
我需要文件中的以下输出
bar_a_
somevalue_a_
somevalue_a_
somevalue_a_
我不知道如何使用copy命令执行此操作。Postgres没有指定替代行分隔符的选项。您可以随时使用sed或您选择的语言进行后期处理,将换行符转换为\u a\n。或者,您可以在select中执行一些字符串连接:
COPY (select bar || '_a_' as bar from foo)
TO 'complete_file_path'
WITH Delimiter ',' FORMAT CSV HEADER;
我不禁想知道,为什么?如果您担心要提取的内容中会嵌入新行,那么我建议切换到文本格式,这会将任何嵌入的新行转义为两个字符\n而将任何实际的新行字符保留为明确的记录分隔符 文本的一个缺点是,您无法获得标题:- 解决这个问题的一种方法是使用头进行CSV提取,并将0限制为仅获取头,然后执行文本提取。笨重,但也是一种选择
有关文本格式的详细信息,请参阅。谢谢您的建议。我将尝试使用sed/awk。