ОШИБКА: дополнительные данные после последнего ожидаемого столбца на postgres - PullRequest
0 голосов
/ 25 октября 2018

Когда я попытался скопировать очень большой текстовый файл в мою базу данных postgres, я получил следующую ошибку ниже.

Обратите внимание, что я создал таблицу с одним столбцом и не использовал разделитель при импорте текстового файла.

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 голосов
/ 25 октября 2018

Ваш текст, вероятно, содержит символ табуляции, который является разделителем столбца по умолчанию для формата TEXT при использовании \copy (или copy) без указания формата.

Таким образом, \copy считает, что строка содержит два столбца, но ожидает только один, следовательно, сообщение об ошибке

Необходимо указать разделитель, который не будет встречаться в файле,Символ со значением ASCII 1 вряд ли встретится в таком файле, поэтому вы можете попробовать:

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