使用delimiter指定列与列之间的分隔符

最近更新时间: 2025-02-18 16:02:00

  • 复制
    复制成功
postgres=# copy public.t to '/data/pgxz/t.txt' with delimiter '@';      
COPY 3
postgres=# \! cat /data/pgxz/t.txt                                
1@TDSQL PG@\N@7
2@pgxc@2017-10-28 18:24:05.643102@3
3@pgxz@2017-10-28 18:24:05.645691@\N
postgres=# copy public.t to '/data/pgxz/t.txt' with csv delimiter '@';
COPY 3
postgres=# \! cat /data/pgxz/t.txt                                    
1@TDSQL PG@@7
2@pgxc@2017-10-28 18:24:05.643102@3
3@pgxz@2017-10-28 18:24:05.645691@
postgres=# copy public.t to '/data/pgxz/t.txt' with csv delimiter '@@';  
ERROR:  COPY delimiter must be a single one-byte character
postgres=# copy public.t to '/data/pgxz/t.txt' with binary delimiter '@';   
ERROR:  cannot specify DELIMITER in BINARY mode

指定分隔文件各列的字符。文本格式中默认是一个制表符, 而CSV格式中默认是一个逗号。分隔符必须是一个单一的单字节字符,即汉字是不支持的。使用binary格式时不允许这个选项。