错误:postgres上最后一个预期的列之后有多余的数据

时间:2018-10-24 21:19:29

标签: postgresql postgresql-copy

当我尝试将非常大的txt文件复制到我的postgres数据库中时,出现以下错误。

请注意,我创建的表格只有一列,并且在导入txt文件时未使用任何定界符。

db1=# create table travis_2018_data (v text); 
db1=# \COPY travis_2018_data FROM 'C:\Users\testu\Downloads\travis_2018\2018-Certification\PROP.txt';

错误:

  

错误:最后一个预期列之后的多余数据
  上下文:COPY travis_2018_data,第295032行:“ 000000561125P 02018000000000000

我想知道为什么我仍然在295032行上看到有关多余数据(或列)的错误?

1 个答案:

答案 0 :(得分:0)

您的文本可能包含制表符,这是使用\copy(或copy)时未指定格式的TEXT格式的默认列定界符。

因此\copy认为该行包含两列列,但仅包含一列,因此出现错误消息

您需要指定文件中不会出现的定界符。具有ASCII值1的字符在这种文件中极不可能出现,因此您可以尝试:

 \COPY travis_2018_data FROM '.....' DELIMITER E'\x01'