2017-04-14 14 views
0

NULLにする必要がある値が単に空白のCSVファイルをロードしようとしています。MonetDBで空白値のCSVをロード

CREATE TABLE test (
    float a, 
    float b, 
    float c 
); 

私はこのようなファイルをロードしようとしています(一部の行には何のNULL値を持たないことを、他の人が、いくつか持っている場合があります):たとえば、次のスキーマを検討してください。

1.0,1.2,1.3 
1.4,,1.5 
1.6,,, 
1.9,2.0,1.2 

空のフィールド(たとえば、2番目の行の2番目のフィールド)をデータベースでNULLにしたいとします。

COPY INTO table from '/path/to/file.csv' USING DELIMITERS ',','\n','"' NULL AS ''; 

と、私は次のエラーを取得しています:

Failed to import table line 2 field b 'double' expected in '' 

は、私は他の(ロード・コマンドに何かを渡すことなら、私はcsvファイルをロードするには、次のコマンドを使用しています

NULL AS "よりも)?

答えて

0

いいえ、これは正しく実行されているようです。私はあなたのテストを複製しようとしているし、それは私のために働く。あなたの答えはNULL ASの部分を除外した場合にのみ発生します。

あなたが提供されているコードにはいくつかのマイナーなエラーがあり、正しいコードは次のようになります。

CREATE TABLE test (
    a float, 
    b float, 
    c float 
); 

COPY INTO test from '/path/to/file.csv' USING DELIMITERS ',','\n','"' NULL AS ''; 

そして、あなたのファイルにあなたが余分な「」文字削除する必要があります。場合

1.0,1.2,1.3 
1.4,,1.5 
1.6,, 
1.9,2.0,1.2 

をこれが失敗した場合は、MonetDBのバージョンを更新してみてください。

関連する問題