![](/img/trans.png)
[英]"extra data after last expected column" while trying to import a csv file into postgresql
[英]postgresql Error "extra data after last expected column” while trying to import csv file
我有一個包含8列的csv文件,但是我的表有一個6列,其序列與csv文件相同。 以下是csv和表的格式和架構
example.csv
"CH_ID","CH_NAME","ADDRESS_1","ADDRESS_2","POST_CODE","MDSC","UPDATE_TIMESTAMP","DELETED_IND"
403,"1182463","","10 St Pauls Court","SG2 8DN",1,2017-10-20 12:08:36,"N"
表結構:-
CREATE TABLE ts_ch (
id int8 NOT NULL DEFAULT nextval('ts_care_homes_seq'::regclass),
ch_name varchar(200) NULL DEFAULT NULL::character varying,
address_1 varchar(255) NULL DEFAULT NULL::character varying,
address_2 varchar(255) NULL DEFAULT NULL::character varying,
post_code varchar(10) NULL DEFAULT NULL::character varying,
mdsc_patient int2 NULL,
PRIMARY KEY (id)
)
WITH (
OIDS=FALSE
) ;
我嘗試了以下命令:
copy ts_care_homes(id, ch_name, address_1, address_2, post_code, mdsc_patient) FROM '/var/tmp/care_home_v.csv' csv HEADER
但我收到此錯誤:
最后一個預期列之后的額外數據
您不能使用普通COPY
命令僅加載CSV文件的一部分。
實現所需目標的一種方法是使用COPY ... FROM PROGRAM
,例如這樣(假設您已安裝sed
):
COPY laurenz.ts_ch(id, ch_name, address_1, address_2, post_code, mdsc_patient)
FROM PROGRAM
'sed -e ''s/\(,\([^,]*\)\|\(\("[^"]*"\)*\)\)\{2,2\}$//'' /var/tmp/care_home_v.csv'
(FORMAT csv, HEADER on);
sed
命令從CSV文件中sed
最后兩列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.