一般に、変数の置換はメタコマンド(バックスラッシュで始まる)で機能しますが、\copy これは例外であり、psqlのマンページ
に記載されています。 :
plpgsqlのEXECUTEという質問に対する@BaconBitsのコメントに同意しません。 答えかもしれません。 \copyとは異なり、サーバー側のステートメントは、動的であろうとなかろうと、クライアント側のファイルシステムにアクセスしません。 。 COPYを使用できます 代わりに、スーパーユーザーであり、そのファイルがpostgresにアクセス可能である必要があります。 サーバー上のユーザー。
\copyに 変数ファイル名から、psqlの前に変数をスクリプトに挿入する必要があります それを読みます。 SQLスクリプトをシェルスクリプトに統合し、それをpsqlにフィードすることができます。 パッチ可能なhere-stringとして、またはsedでフィルタリングします またはperl または同様のUNIX風の方法。