【发布时间】:2018-03-11 04:36:47
【问题描述】:
我有一个连接到 postgres 数据库(版本 9.5)并运行复制命令来生成 CSV 文件的 bash 脚本。它的工作没有任何问题。
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 运行相同的选择命令,如下所示。
sql_stm="\copy (SET "request.user_id" = <user_id>); SELECT * FROM <table_name> to 'C:\tmp\persons_client.csv' with csv"
现在我遇到了一个错误。 错误:“SET”处或附近的语法错误
我只是想知道为什么我不能在 /Copy(....) 中运行 SET。
还是我做错了什么?
谢谢
【问题讨论】:
-
使用here-document,您的大部分引用问题都会消失。 stackoverflow.com/a/11251168/905902
标签: database bash postgresql psql