提问人:CrispyRice 提问时间:11/9/2023 更新时间:11/10/2023 访问量:33
复制时 postgres 中最后一个预期列之后的额外数据
extra data after last expected column in postgres while copy
问:
我不明白为什么失败了。
这是我在数据文件 lineitem.tbl 中的部分数据
1|155190|7706|1|17|21168.23|0.04|0.02|N|O|1996-03-13|1996-02-12|1996-03-22|DELIVER IN PERSON|TRUCK|egular courts above the|
1|67310|7311|2|36|45983.16|0.09|0.06|N|O|1996-04-12|1996-02-28|1996-04-20|TAKE BACK RETURN|MAIL|ly final dependencies: slyly bold |
1|63700|3701|3|8|13309.60|0.10|0.02|N|O|1996-01-29|1996-03-05|1996-01-31|TAKE BACK RETURN|REG AIR|riously. regular, express dep|
1|2132|4633|4|28|28955.64|0.09|0.06|N|O|1996-04-21|1996-03-30|1996-05-16|NONE|AIR|lites. fluffily even de|
1|24027|1534|5|24|22824.48|0.10|0.04|N|O|1996-03-30|1996-03-14|1996-04-01|NONE|FOB| pending foxes. slyly re|
1|15635|638|6|32|49620.16|0.07|0.02|N|O|1996-01-30|1996-02-07|1996-02-03|DELIVER IN PERSON|MAIL|arefully slyly ex|
2|106170|1191|1|38|44694.46|0.00|0.05|N|O|1997-01-28|1997-01-14|1997-02-02|TAKE BACK RETURN|RAIL|ven requests. deposits breach a|
3|4297|1798|1|45|54058.05|0.06|0.00|R|F|1994-02-02|1994-01-04|1994-02-23|NONE|AIR|ongside of the furiously brave acco|
这是我的目标表
Partitioned table "public.lineitem"
Column | Type | Collation | Nullable | Default
-----------------+-----------------------+-----------+----------+---------
l_orderkey | bigint | | |
l_partkey | integer | | |
l_suppkey | integer | | |
l_linenumber | integer | | |
l_quantity | double precision | | |
l_extendedprice | double precision | | |
l_discount | double precision | | |
l_tax | double precision | | |
l_returnflag | character(1) | | |
l_linestatus | character(1) | | |
l_shipdate | date | | |
l_commitdate | date | | |
l_receiptdate | date | | |
l_shipinstruct | character(25) | | |
l_shipmode | character(10) | | |
l_comment | character varying(44) | | |
我在数据库中使用了以下命令
COPY public.lineitem FROM '/tmp/lineitem.tbl' WITH delimiter '|' csv;
错误是
psql: ERROR: extra data after last expected column
我做了以下工作
- 检查分隔符:确保“|”字符始终用作数据文件中的列分隔符,并且没有多余的分隔符或缺少分隔符。
- 数据格式:验证每个字段是否正确用“|”字符分隔,并且数据中没有缺失或多余的字段。
我想知道如何解决它。
答:
1赞
CrispyRice
11/9/2023
#1
正如 @Adrian Klaver 所评论的那样,尾随的“|”是导致错误的原因。删除后我成功了。
此数据由 dbgen 工具生成。为了避免行尾的尾随分隔符,我发现当我们可以在 dbgen 制作过程中添加标志时。TPC-H
-DEOL_HANDLING
评论
egular courts above the|
|
|