web-dev-qa-db-ja.com

csvファイルに存在するNULL値をpostgresにコピーします

次の形式のcsvファイル(y.csv)があります。

 's', '1999-10-10', '1999-12-12'
 'b', '99-10-10 BC', '1-10-10 BC'
 'c', 'NULL', 'NULL'

文字列 'NULL'で示した(日付の)NULL値がいくつかあります。

Csvファイルをpostgresにコピーしようとしています。そのために、テーブルを作成しました。

create table r (id character varying(255), timebegin date, timeend date);

次のコマンドを使用して、上記の.csvファイルをpostgresにコピーしようとしています

copy r from '/home/y.csv' delimiter ',' csv;
ERROR:  invalid input syntax for type date: " 'NULL'"
CONTEXT:  COPY r, line 1, column timebegin: " 'NULL'"

これを行うと、NULLのエラーが発生します。誰かがエラーを見つけて修正するのを手伝ってくれませんか?.

18
Jannat Arora

試しましたか?

 copy r from '/home/y.csv' delimiter ',' csv WITH NULL AS 'null';
32
sqlint

エラーは、NULLを文字列として挿入しているためです。 NULLを囲む引用符を削除すると、機能するはずです。

2
heretolearn