我正在尝试将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')