0

コマンド シェルから次の COPY クエリを実行しようとしています。

COPY products_273 TO '/tmp/products_199.csv' DELIMITER ',' CSV HEADER;

psql を使用してコマンド ラインからクエリを実行できることは知っています。

psql -U username -d mydatabase -c 'SELECT * FROM mytable'

しかし、どうすれば2つを組み合わせることができますか?以下は機能していないようですが、エスケープする必要があるかどうか/方法がわかりません。

psql -U username -d mydatabase -c 'COPY products_273 TO '/tmp/products_199.csv' DELIMITER ',' CSV HEADER;'
4

3 に答える 3

2

と を混ぜないでください。クエリ'"で引用します"

psql -U username -d mydatabase -c "COPY products_273 TO '/tmp/products_199.csv' DELIMITER ',' CSV HEADER;"
于 2016-07-04T21:34:38.920 に答える
2

最も簡単な解決策は、(IMHO)ヒアドキュメントを使用することです。これにより、(ほぼ) すべての引用の問題も解決されます。

#!bin/sh
psql -U username -d mydatabase <<OMG
  COPY products_273 TO '/tmp/products_199.csv' DELIMITER ',' CSV HEADER;
OMG
于 2016-07-04T22:20:08.500 に答える