繁体   English   中英

使用\\ copy将数据从表导出到CSV文件-psql

[英]Export data from table to CSV file using \copy - psql

我有一个bash脚本,它连接到postgres数据库(9.5版)并运行copy命令生成CSV文件。 它的工作没有任何问题。

pg-source-query() {
    psql --quiet "$DATABASE_SOURCE_URL" <<< $'\set ON_ERROR_STOP true \n'"$1"
}
sql_stm="\copy (SELECT * FROM <table_name>) to '<file_path>' with csv"
pg-target-query "$sql_stm" 

现在,我需要使用SET来运行相同的select命令,如下所示。

sql_stm="\\copy (SET "request.user_id" = <user_id>); SELECT * FROM <table_name> to 'C:\\tmp\\persons_client.csv' with csv"

现在我遇到一个错误。 错误:“ SET”处或附近的语法错误

我只是想知道为什么我不能在/ Copy(....)中运行SET

还是我做错了什么?

谢谢

好吧,终于找到了答案。

sql_stm="(SET "request.user_id" = <user_id>); \copy SELECT * FROM <table_name> to 'C:\tmp\persons_client.csv' with csv"

做到了!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM