使用postgres copy命令导出数据时,从CHAR列修剪数据

时间:2011-12-12 06:40:25

标签: file postgresql copy export trim

使用COPY命令(http://www.postgresql.org/docs/9.1/static/sql-copy.html)我在生成的文本文件中为每个CHAR列填充空格。
在此过程中有没有办法修剪它们?

2 个答案:

答案 0 :(得分:3)

实际上,这与COPY无关。根据定义,数据类型char为空白填充。 列的正确内容。阅读manual about data types

char是计算机系统在变量字符串长度上遇到困难的时代的继承,现在很少有用。您可以为@mu描述的导出更改此选项。但是,要妥善解决此问题,请在表格列中使用text数据类型(或varchar)。

答案 1 :(得分:2)

您可以使用COPY指定查询而不是表名,这样您就可以添加TRIM调用以从char(n)列中删除前导和尾随空格:

copy (select trim(some_column), ... from some_table) to stdout with csv;