6

50 個の CSV データ ファイルを postgres にインポートしています。値が通常の数値 (コンマ区切り) である場合もあれば、引用符で囲まれて千の位にコンマを使用する場合もある整数フィールドがあります。

たとえば、4 と "4,000" の両方をインポートする必要があります。

私はしようとしています:

COPY race_blocks FROM '/census/race-data/al.csv' DELIMITER ',' CSV HEADER;

そしてエラーを取得します:

エラー: 整数の入力構文が無効です: "1,133"

これどうやってするの?

4

1 に答える 1

5

データに列が 1 つしかないとします。まず、varchar 列を含む一時テーブルを作成します。

CREATE TEMP TABLE race_blocks_temp (your_integer_field VARCHAR);

ファイルからデータをコピーする

COPY race_blocks_tmp FROM '/census/race-data/al.csv' DELIMITER ',' CSV HEADER;

varchar フィールドから「,」を削除し、データを数値に変換してテーブルに挿入します。

INSERT INTO race_blocks regexp_replace(your_integer_field, ',', '') :: numeric AS some_colun FROM race_blocks_tmp;
于 2013-09-09T22:16:52.870 に答える