gpt4 book ai didi

postgresql - 错误 : extra data after last expected column - COPY

转载 作者:行者123 更新时间:2023-11-29 13:48:00 24 4
gpt4 key购买 nike

当我尝试使用分隔符 | 导入数据时,我收到错误:

ERROR: extra data after last expected column

如果我从以下示例数据中存在问题的文件中删除双引号或单引号,我可以加载数据,但我的要求是我需要所有数据而不删除任何数据。

这是我的复制命令:

COPY public.dimingredient FROM '/Users//Downloads/archive1/test.txt' 
DELIMITER '|' NULL AS '' CSV HEADER ESCAPE AS '"' ;

我的 table :

  public.dimingredient
(
dr_id integer NOT NULL,
dr_loadtime timestamp(6) without time zone NOT NULL,
dr_start timestamp(6) without time zone NOT NULL,
dr_end timestamp(6) without time zone NOT NULL,
dr_current boolean NOT NULL,
casnumber character varying(100) COLLATE pg_catalog."default" NOT NULL,
ingredientname character varying(300) COLLATE pg_catalog."default" NOT NULL,
matchingstrategy character varying(21) COLLATE pg_catalog."default",
percentofconfidence double precision,
disclosurestatus character varying(42) COLLATE pg_catalog."default",
issand character varying(1) COLLATE pg_catalog."default",
sandmeshsize character varying(20) COLLATE pg_catalog."default",
sandquality character varying(20) COLLATE pg_catalog."default",
isresincoated character varying(1) COLLATE pg_catalog."default",
isartificial character varying(1) COLLATE pg_catalog."default",
CONSTRAINT dimingredient_pkey PRIMARY KEY (dr_id)
)

我的数据:

5144|2016-07-01 13:34:25.1001891|1900-01-01 00:00:00.0000000|9999-12-31 23:59:59.9999999|True|93834|"9-octadecenamide,n,n-bis(2-hydroxyethyl)-, (9z)"|"NO CAS MATCH FOUND"||Disclosed|||||

5145|2016-07-01 13:34:25.1001891|1900-01-01 00:00:00.0000000|9999-12-31 23:59:59.9999999|True|93834|"9-octadecenamide,n,n-bis-2(hydroxy-ethyl)-,(z)""|"NO CAS MATCH FOUND"||Disclosed|||||

最佳答案

省略 dample 数据中的空行,我在 9.6 中收到不同的错误消息,即:

ERROR:  unterminated CSV quoted field
CONTEXT: COPY dimingredient, line 3: "5145|2016-07-01 13:34:25.1001891|1900-01-01 00:00:00.0000000|9999-12-31 23:59:59.9999999|True|93834|..."

奇怪的是,该错误消息自 CSV COPY 以来一直存在是在8.0版本中引入的,所以我想知道你的数据与上面显示的数据有何不同。

错误消息很容易解释:第二行中有奇数个引号字符 ( " )。

由于带引号的字符串中的两个双引号被解释为单个双引号(" 被转义为 ""),因此第二行中的字段为:

5145
2016-07-01 13:34:25.1001891
1900-01-01 00:00:00.0000000
9999-12-31 23:59:59.9999999
True
93834
9-octadecenamide,n,n-bis-2(hydroxy-ethyl)-,(z)"|NO CAS MATCH FOUND||Disclosed|||||

... 然后 COPY解析带引号的字符串时到达文件末尾。因此错误。

解决方案是使用偶数个"每个字段的字符数。

如果你需要 "字段中的字符,或者选择不同的 QUOTE或引用该字段并将 " 加倍.

关于postgresql - 错误 : extra data after last expected column - COPY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45307901/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com