postgresql - 使用批处理脚本将管道分隔的 csv 转换为制表符分隔

标签 postgresql batch-file

我正在尝试编写一个批处理脚本来查询 Postgres 数据库并将结果输出到 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 = 数据库

最佳答案

你应该使用 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-align
Switches to unaligned output mode. (The default output mode is otherwise aligned.)

关于postgresql - 使用批处理脚本将管道分隔的 csv 转换为制表符分隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8514503/

相关文章:

postgresql - PostgreSQL 范围类型中的 NULL 与 `infinity`

PostgreSQL:从 bool 值更改列类型

batch-file - doskey 中的 `^&` 和 `$T` 行为相似但不相同

batch-file - 批处理文件和脚本中的腻子?

windows - 以字符串作为分隔符拆分字符串

postgresql - 如果多个,使用 sequelize 绑定(bind)参数会失败

function - 将表名和列名定义为 plpgsql 函数中的参数?

postgresql - 如何找到接触开始/结束节点的 LINESTRING

python - 如何使用 python 停止程序的执行?

windows - 我们如何在批处理文件中使用当前目录路径(%~dp0)和 'ren' 命令?