• ベストアンサー

PostgreSQLでcsvにエクスポート

PostgreSQL内のテーブルをCOPYコマンドを使ってCSVにエクポートしようと思っています。 データのエクスポートは出来るのですが、二重引用符の付加が出来ません。 copy TBL1 to 'd:/TBL1.CSV' with delimiter ',' csv quote '"' 《CSVデータの内容》 001,あいうえお "001","あいうえお" ← この様に二重引用符を付加したいです。 どうすればいいでしょうか? ご教授いただきたく思っております。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

マニュアルから 「区切り文字、QUOTE文字、NULL文字列、復帰、改行文字を含む値の場合、全体の値の前後にQUOTE文字が付与されます。」 すなわち、これらの文字を含まない場合はQUOTEされません。 強制的にQUOTEするには、項目を指定してFORCE QUOTEする必要があります。 http://www.postgresql.jp/document/current/html/sql-copy.html

yokohama-ginbae
質問者

お礼

早速の回答有難うございました。 お蔭様でQUOTEする事が出来ました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PostgreSQL MySQL CSV入出力

    timestamp型をCOPYコマンド出力する際ダブルクォーテーションでクォートしたい。 COPY (SELECT id, TOCHAR(date, 'YYYY-MM-DD hh:mm:ss'), names) FROM table) TO E'/export.txt' WITH CSV null'\\N'; これで出力すると以下のようなデータが吐かれる 1行目:1,2011-01-01 01:01:00,"{""A_01"",""A_02""}" 2行目:2,2011-01-02 02:02:00,{""A_03""} 配列外側の二重引用符は、要素が二つ以上のときのみ付く FORCE QUOTE id, date, names とすると日付の部分でエラーになる。

  • PostgreSQLのエクスポートについて

    現在、自宅から大学へ接続し、TeraTermからPostgreSQL8.1.23を利用しています。 なので、自宅のプログラムファイルの中にはpgsqlというファイルがありません。 そこで、作成したテーブルを自宅のPCでエクスポートしたいのですができません。 <インポートを実行した場合> a=>\copy example from import.txt; \. と表示され、なぜか違うテーブルのデータが増える。 <エクスポート> a=>\copy example to export.txt; a=> なにも表示されず、デスクトップに用意したexport.txtには、データが書き込まれません。 この場合、import.txt・export.txtのファイルがデスクトップにあるからいけないのでしょうか?

  • PostgreSQL MySQL CSV入出力

    テーブルのデータを移植したいと思っています PostgreSQL8.4から出力したCSVをMySQL5.5で取り込みたいのですが、COPYコマンドを使用すると以下のようなエラーが出ます ERROR 1262 (01000): Row 1 was truncated; it contained more data than there were input columns PostgreSQLはtext[]型で"{A_1,A_2}"といったデータを出力します MySQLはPostgreSQLの配列に相当する型がないようなのでBlob型で格納しようと思っています おそらくデータ内のカンマが原因なのはわかっているのですが、上手くエクスポート・インポートする方法はありませんでしょうか?

    • ベストアンサー
    • MySQL
  • csvデータをPostgreSQLにコピー

    # rpm -qa | grep postgresql を実行してみると、 postgresql-python-7.2.2-1 postgresql-odbc-7.2.2-1 postgresql-7.2.2-1 postgresql-perl-7.2.2-1 postgresql-server-7.2.2-1 postgresql-devel-7.2.2-1 postgresql-contrib-7.2.2-1 postgresql-libs-7.2.2-1 postgresql-jdbc-7.2.2-1 postgresql-tcl-7.2.2-1 が表示されたため、 # postgres start を実行すると、 "root" execution of the PostgreSQL server is not permitted. The server must be started under an unprivileged user id to prevent more information on how to properly start the server. と表示されます。そこで、本サイトのQ&Aを参考にして、 # /etc/init.d/postgresql start を実行したところ、起動しました。Windows版では、pgAdminIIIのクエリーツールで以下のようにすれば、csvデータ(UTF8)をPostgreSQLの所定のテーブルにインポートできます。 COPY tablename FROM E'C:\\test\\testdata.csv' WITH CSV; Linux版ではどのようにするのでしょうか?

  • テーブルにcsvファイルをインポートできない

    かなり困っています。REDHAT LINUXでpostgresのテーブルにpsqlからのCOPYコマンドでcsvファイルのデータをインポートしようとしているのですが、文字数オーバーのエラーがでてしまいます。テーブルは2列で1つ目の列はCHAR(10)で2列目はINT4型です。csvファイルの内容はとりあえず1行だけ入れていて「"1234567890","1234"」を入れています。コマンドはpsqlで「COPY テーブル FROM 'ファイルのパス' USING DELIMITER ","」で行いました。エラーはおそらくインポートしたデータがおかしくなって変な桁数になっているのですが、どういうふうにおかしくなっているのかがよくわからないので対策できません。

  • エクスポートの方法

    お世話になっております。 postgreSQL初心者です。 エクスポートの方法をご教授頂きたいです。 COPYコマンドでCSVをエクスポートしたいのですが ・カラム順を指定出来ないでしょうか? ・またデータでタイムスタンプが登録されている場合、タイムスタンプ部分を削除してエクスポートする方法はないでしょうか?  例)タイムスタンプ付き 2006-10-12 16:50:01+09    タイムスタンプ削除 2006-10-12 16:50:01 ちなみに ・pg_dump -D でINSERT文を抜き出す際もタイムスタンプを削除出来ませんでしょうか? postgreSQLバージョン:8.03 簡単なことなのかもしれませんが、どうぞよろしくお願いいたします。

  • CSVファイルのインポート/エクスポート

    VBAのAccessでCSVファイルを取り込んでテーブルに登録するプログラムと、テーブルのデータをCSVファイルでエクスポートするプログラムを作ろうと思っています。 選択クエリを使用して、取得したものをエクスポートするようにしたいのですが、どのようにすれば可能でしょうか?

  • PostgreSQLのnull値について

    PostgreSQL7.2.3 で利用しています。 insert文を発行するときは null値は values(null); と実行します。 これは問題ないのですが COPY toコマンドを発行し、(カンマ区切り)csvに落とすと \N で落ちてきます。何か設定が悪いのでしょうか? 同じく、カンマ区切りのファイル 123,,,,5,66 とかを COPY fromコマンドでの受入を実行することもできません。 123,\N,\N,\N,5,66 だったら成功するようです。 こういうものなのでしょうか?

  • Access CSVデータのエクスポート

    Access CSVデータのエクスポート 下記のようにCSVデータをエクスポートしています。 最後をTrueに設定すると1行目がタイトルとしてエクスポート出来るはずが出来ません。 エクスポート定義が原因でしょうか? 対処方法を教えて下さい。 ※ちなみに下のようにエクスポート定義を使用しないと1行目をタイトルしてエクスポート出来ます。 DoCmd.TransferText acExportDelim, "エクスポート定義", "テーブル名", Format(Now(), "yyyymmdd") & "test.csv", True DoCmd.TransferText acExportDelim, , "テーブル名", Format(Now(), "yyyymmdd") & "test.csv", True

  • csvデータをPostgreSQLにインポート

    RedHat8.0にpostgresql-7.2.3.tar.gzをインストールしています。database_6に接続し、 database_6=# COPY tablename FROM '/var/test/testdata.csv' WITH CSV; を実行すると(tablenameとtestdataとは同一名にしてあります)、 ERROR: parser: parse error at or near "csv" と表示されてしまいます。どこが悪いのでしょうか?

このQ&Aのポイント
  • EP-978A3でエラーコード:0x99が表示され、電源を入れ直しても解決しない問題が発生しています。
  • EP-978A3の利用中に、エラーコード:0x99が頻繁に表示され、電源の再起動を試しても解決されません。
  • EP-978A3がエラーコード:0x99を表示し、電源を再起動しても問題が解消されない状況です。
回答を見る