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