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 が存在しません LINE 1: ...M table_a h JOIN table_b b ON h.IDX = b....