我正在尝试在 bash 脚本中运行多个 sql 语句。我尝试在 psql 上运行以下语句,它工作正常。但是,当我在脚本上运行确切的语句时,它说该列不存在。
该声明
\copy (SELECT * FROM table_a h JOIN table_b b ON h."IDX" = b."IDX" WHERE b."XXX" BETWEEN 0 AND 100) to 'D:\$path\onetry1.csv' with csv HEADER;
我知道在 Postgres 中,需要在大写列名上使用双引号。我这样做了。
这是我的 bash 脚本:
#! /bin/sh
db="usm"
PGPASSWORD=XXX123 psql -h localhost -U postgres -d $db -c "\copy (SELECT * FROM table_a h JOIN table_b b ON h."IDX" = b."IDX" WHERE b."XXX" BETWEEN 0 AND 500) to '$path\onetry2.csv' with csv HEADER;"
我得到的错误:
错误:列 h.idx 不存在第 1 行:...M table_a h JOIN table_b b ON h.IDX = b....