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