Postgres 复制命令添加额外的反斜杠""



我正在尝试将jsonb类型的数据复制到文件中。

copy (select myjsonbcolumn from mytable where time > timestamp '2021-05-01 00:00:00') to '/home/ubuntu/jsobdata.ndjson';

现在这个jsonb数据中有'。例如,

{"ID": "123","Body": "<p><a href="https://google.com">Lorem ipsum</a></p>n<p>Lorem Ipsum Lorem ipsum </p>"}

现在上面的复制命令添加了一个额外的"转换为

{"ID": "123","Body": "<p><a href=\"https://google.com\">Lorem ipsum</a></p>\n<p>Lorem Ipsum Lorem ipsum </p>"}

是否有办法通知不添加额外的?因为这个庞大的数据,超过200GB和替换那些额外的将花费大量的时间通过文件处理

问题是COPY的默认输出格式(即text)将反斜杠视为转义字符,因此必须将其加倍。使用csv格式并将引号字符和分隔符设置为数据中不存在的字符,例如

copy (SELECT ...) TO '...' (FORMAT 'csv', QUOTE E'u0007', DELIMITER E'u0008')

最新更新