PostgreSQL: 2018年5月アーカイブ

昨夜、お客さんの DB データのメンテナンスをした。最新情報を CSV ファイルで欲しいということだったので、COPY コマンドでエクスポートしようとしたんだけど、

hogedb=# COPY m_hoge TO '/tmp/m_hoge_20180511.csv' WITH CSV DELIMITER ',' NULL AS '' HEADER FORCE QUOTE *;
ERROR:  syntax error at or near "*"
LINE 1: ...csv' WITH CSV DELIMITER ',' NULL AS '' HEADER FORCE QUOTE *;

て具合にエラーになる。FORCE QUOTE のワイルドカード文字 '*' が引っかかっているようだ。

うーん、なんで?
全カラムをダブルクォーテーションで囲むのであれば、FORCE QUOTE * じゃなかったっけ?

取り敢えず、

hogedb=# COPY m_hoge TO '/tmp/m_hoge_20180511.csv' WITH CSV DELIMITER ',' NULL AS '' HEADER FORCE QUOTE id,name,kubun,hoge1,hoge2,note,cdate,udate;
COPY 84

みたいに全項目名を書けば上手くいったけど、項目数が何十ってあるテーブルだってあるわけで、いちいちそれを羅列するの?・・・って話だなあ。

なんでワイルドカード使えんのやろ?

バージョンは PostgreSQL 8.4.20 でちょっと古いんだけど、8 の時ってワイルドカード、使えんかったっけ?

確かに、PostgreSQL 9.0.4 だったらエラーにならないなあ。

このアーカイブについて

このページには、2018年5月以降に書かれたブログ記事のうちPostgreSQLカテゴリに属しているものが含まれています。

前のアーカイブはPostgreSQL: 2015年4月です。

次のアーカイブはPostgreSQL: 2020年1月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら