PostgreSQL:如何避免 COPY 命令输出中不需要的字符?

PostgreSQL: How do I avoid unwanted characters in COPY command output?

我的 PostgreSQL 9.5 数据库中有一个数组(文本)(示例行),如下所示:

my_array(text)
1,112,292,19.7

我正在使用 Postgres COPY 命令将此文本数组导出到自定义文本文件,如下所示:

Copy
(
Select
my_array
from
my_table
Order by my_table_id
) to '~my_path/output.str' With DELIMITER ',';

我得到输出:

1\,112\,292\,19.7\

如何避免在我的复制命令输出中出现这些不需要的 \

  • 如果字符串中存在定界符(,),它将被转义(通常在其前面加上 \
  • 如果您使用不同的分隔符(来自 ,),则不必转义 , 分隔符。

  • 如果在输出中引用字符串,则不必转义 , 分隔符。


-- CREATE TABLE my_table(my_table_id SERIAL PRIMARY KEY, my_array text);
-- INSERT INTO my_table(my_array )VALUES ('1,112,292,19.7') ;

COPY ( SELECT my_array FROM my_table ORDER BY my_table_id)
TO '/tmp/output.str'
WITH CSV DELIMITER ',' QUOTE '"'
        ;