ERROR: extra data after last expected column on postgres
ERROR: extra data after last expected column on postgres
当我试图将一个非常大的 txt 文件复制到我的 postgres 数据库中时,出现以下错误。
请注意,我创建了一个只有一列的 table,并且在导入 txt 文件时没有使用任何定界符。
db1=# create table travis_2018_data (v text);
db1=# \COPY travis_2018_data FROM 'C:\Users\testu\Downloads\travis_201818-Certification\PROP.txt';
错误:
ERROR: extra data after last expected column
CONTEXT: COPY travis_2018_data, line 295032: "000000561125P 02018000000000000
我想知道为什么我仍然在第 295032 行收到关于额外数据(或列)的错误?
您的文本可能包含制表符,当使用 \copy
(或 copy
)而不指定格式时,制表符是 TEXT 格式的默认列分隔符。
所以 \copy
认为该行包含 两个 列,但只需要一个,因此出现错误消息
您需要指定一个不会出现在文件中的分隔符。 ASCII值为1
的字符是极不可能出现在这样的文件中的,所以你可以试试:
\COPY travis_2018_data FROM '.....' DELIMITER E'\x01'
当我试图将一个非常大的 txt 文件复制到我的 postgres 数据库中时,出现以下错误。
请注意,我创建了一个只有一列的 table,并且在导入 txt 文件时没有使用任何定界符。
db1=# create table travis_2018_data (v text);
db1=# \COPY travis_2018_data FROM 'C:\Users\testu\Downloads\travis_201818-Certification\PROP.txt';
错误:
ERROR: extra data after last expected column
CONTEXT: COPY travis_2018_data, line 295032: "000000561125P 02018000000000000
我想知道为什么我仍然在第 295032 行收到关于额外数据(或列)的错误?
您的文本可能包含制表符,当使用 \copy
(或 copy
)而不指定格式时,制表符是 TEXT 格式的默认列分隔符。
所以 \copy
认为该行包含 两个 列,但只需要一个,因此出现错误消息
您需要指定一个不会出现在文件中的分隔符。 ASCII值为1
的字符是极不可能出现在这样的文件中的,所以你可以试试:
\COPY travis_2018_data FROM '.....' DELIMITER E'\x01'