0

当我尝试将一个非常大的 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';

错误:

错误:最后一个预期列
CONTEXT 之后的额外数据:COPY travis_2018_data,第 295032 行:“000000561125P 02018000000000000

我想知道为什么我仍然在第 295032 行收到有关额外数据(或列)的错误?

4

1 回答 1

0

\copy您的文本可能包含一个制表符,这是在使用(或copy) 而不指定格式时 TEXT 格式的默认列分隔符。

所以\copy认为该行包含列但只期望一列,因此错误消息

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

 \COPY travis_2018_data FROM '.....' DELIMITER E'\x01'
于 2018-10-25T07:19:49.437 回答