postgresql postgres中最后一个预期列后的额外数据,同时复制

0yycz8jy  于 2023-11-18  发布在  PostgreSQL
关注(0)|答案(1)|浏览(160)

我不知道为什么失败了。
下面是数据文件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) |           |          |


我在数据库中使用了follow命令

COPY public.lineitem FROM '/tmp/lineitem.tbl' WITH delimiter '|' csv;


误差

psql: ERROR:  extra data after last expected column


我做了以下工作

  • 检查分隔符:确保“|“字符始终用作数据文件中的列分隔符,并且没有多余或丢失的分隔符。
  • 数据格式:验证每个字段是否由“|“字符,并且数据中没有丢失或多余的字段。

我想知道怎么补救。

yxyvkwin

yxyvkwin1#

正如@Adrian Klaver评论的那样,尾随的“|'是错误的原因,删除后成功。
这个数据是由TPC-H dbgen工具生成的。为了避免行尾的拖尾,我发现当我们在dbgen制作过程中添加-DEOL_HANDLING标志时。

相关问题