我正在将50个CSV数据文件导入postgres。我有一个整数字段,有时值是常规数字(逗号分隔),有时它在引号中,并使用逗号为数千。
例如,我需要导入4和“4,000”。
我正在尝试:
COPY race_blocks FROM '/census/race-data/al.csv' DELIMITER ',' CSV HEADER;
得到错误:
错误:整数的输入语法无效:“1,133”
我该怎么做?
答案 0 :(得分:3)
假设您的数据中只有一列。 首先使用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;