"文字が含まれるcsvをcopyコマンドでpostgresへ登録したい
Q&A
Closed
解決したいこと
oracleから、csv形式でデータを抜き出しました。
文字列は ""で囲んでます。
postgresの型は以下の通りです。
ID(int),name(varchar),address(text)
インポートするデータは
21,"キータ太郎","{"string":{"id":1,"name":"キータ太郎"},"string2":{~
のように数字、文字列、文字列(json形式のデータ)が格納されています。
DBに格納したい形は
21,キータ太郎,{"string":{"id":1,"name":"キータ太郎"},"string2":{~
→文字列の先頭と末尾の「"」を削除した状態で登録を行いたいです。
インポート方法としては、コマンドライン(SQL Shell)を呼び出してcopyコマンドを実施しています。
その他:nameカラムはnullの可能性がある。UTF8でインポートを行う
発生している問題・エラー
コマンドは通りますが、登録すると
21,キータ太郎,{string:{id:1,name:キータ太郎},string2:{~
のように"が全て削除されてしまう。(QUOTE のdefault値なので当たり前ですが・・・)
以下コマンドを実行
\copy tablename from C:\export_csv\oracle.csv with (format csv, null '', force_null( name) ,encoding 'UTF-8')
もし解決する手段などありましたらご教示の程よろしくお願いします。
0