2011-12-15 60 views
1

我想写一个批处理脚本来查询Postgres数据库并将结果输出到csv。目前,它查询数据库并将输出保存为管道分隔的csv。将管道分隔的csv转换为使用批处理脚本分隔的制表符

我希望输出为制表符而不是管道分隔符,因为我最终会将csv导入到Access中。有谁知道这是如何实现的?

当前代码:

cd C:\Program Files\PostgreSQL\9.1\bin 
psql -c "SELECT * from jivedw_day;" -U postgres -A -o sample.csv cscanalytics 

的Postgres =用户名 cscanalytics =数据库

回答

4

您应该使用COPY转储CSV:

psql -c "copy jivedw_day to stdout csv delimiter E'\t'" -o sample.csv -U postgres -d csvanalytics 

delimiter E'\t'部分将让你与你的输出制表符而不是逗号作为分隔符。还有其他选项,请参阅the documentation了解更多详情。

使用-A like you are只是转储通常的交互输出到sample.csv不正常的填充,以使列排队,这就是为什么你看到的管道:

-A
--no对齐
切换到未对齐的输出模式。 (默认输出模式以其他方式对齐。)

相关问题