我有一个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"
现在我收到了错误消息。 错误:语法错误或接近&#34; SET&#34;
我只是想知道为什么我无法在 / Copy(....)中运行 SET 。
或者我做错了什么?
谢谢
答案 0 :(得分:0)
好的,最后我找到了答案。
sql_stm="(SET "request.user_id" = <user_id>); \copy SELECT * FROM <table_name> to 'C:\tmp\persons_client.csv' with csv"
诀窍!