[pgsql-jp: 32892] 2重引用符でくくられた文字列を含むCSVファイルをCOPYでインポート
Dai NAKAMURA
dnimail @ software.sanix.jp
2004年 5月 4日 (火) 17:03:58 JST
いつも参考にさせてもらっております。
中村と申します。
早速ですが、PostgresSQLのCOPYコマンドにて対応可能か否か
判別がつかず質問させてもらいます。
DB2 UDBにあるデータをPostgresSQLに取り込もうと考えております。
DB2からは、テキスト・デリミタ形式でデータのEXPORTが可能です。
ところが、文字列形式(CHARでもVARCHARでも)の項目に関しては
必ず、引用符(通常は")で括られた形でしかEXPORTできません。
例えばDB2上のテーブルで、
項目 変数型 実値
------+-------------+------
A CHAR(3) AAA
B VARCHAR(3) BBB
C DECIMAL(10,2) 100.01
とあった場合、EXPORTされるレコードは、
"AAA","BBB",+00000100.01
となります(このファイルをhoge.txtとします)。
今Postgresで下記のように同様の定義を持つテーブルX
項目 変数型
------+-------------
A CHAR(3)
B VARCHAR(3)
C NUMARIC(10,2)
を作成し、
copy x from 'hoge.txt' using delimiters ',';
とすると当然ながら、文字列を括るために付与された"までインポートされ
項目 実値
------+-------------
A "AA
B "BB
C 100.01
となってしまいます。
文字列のくくりを無視してPostgresにインポートしたいのですが可能で
しょうか?
VBやjavaなどでプログラムを作成してデータを移行するのは可能
ですが、件数が多い(百数十万件)のとほかにもかなりの量移行したい
テーブルがあるので、できればインポートで済ませたいと思っています。
ちなみに、くくり文字(")や区切り文字(,)は、他の文字の指定は可能
です(無指定は不可)。
環境は、
RedHat 7.3
PostgreSQL 7.1.3
です。
どうぞよろしくお願いします。
pgsql-jp メーリングリストの案内